-2
我想格式化所有日期從select * from table
,但我不知道表的列。 我想在返回結果時將數據類型爲DATE的所有列格式化爲特定格式。格式日期選擇* perl
我正在使用Oracle和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