格式日期选择* perl
问题描述:
我想格式化所有日期从select * from table
,但我不知道表的列。 我想在返回结果时将数据类型为DATE的所有列格式化为特定格式。格式日期选择* perl
我正在使用Oracle和Perl脚本。
在此先感谢
答
你可以这样做:
alter session set nls_date_format = '<your date format>';
如:
alter session set nls_date_format = 'dd/mm/yyyy hh24:mi:ss';
select sysdate from dual;
SYSDATE
---------------------
09/06/2016 09:33:38
记住,如果排除时间部分(例如,它是不相关的某些列,因为它是总是设置为午夜),那么对于那些确实有时间部分的列的输出将会误导 - 例如:
alter session set nls_date_format = 'dd/mm/yyyy';
select sysdate from dual;
SYSDATE
----------
09/06/2016
我有点困惑,为什么你不知道你在处理哪些列。查看数据库并获取该信息并不难。
那么,tabel的字段可能会在未来发生变化,这就是我更喜欢使用'select *'的原因。我将测试提出的答案。谢谢 – ilde
通常,生产代码中的'select *'是不好的。你还没有说过你的脚本有什么用途,所以使用'select *'可能会也可能没有意义。编写剧本的懒惰,恕我直言,不是一个很好的理由(不是我说这是发生在这里;没有足够的信息来确定!)。如果表格的结构在将来发生变化,那么你的脚本也应该相应地改变;毕竟,如果它们是应用程序的一部分(例如报告),那么它们应该以与其他应用程序代码类似的方式处理。 – Boneist
好吧,它是一个从数据库表中复制一些行到另一个的工具,它不是一个连续的过程,它最终运行。 谢谢 – ilde