有甲骨文的任何方式,從在Oracle的Unix時間戳只得到DD-MM-YYYY一部分?的Oracle SQL - 柱與UNIX時間戳,需要DD-MM-YYYY時間戳
像:
select to_char(my_timestamp, 'ddmmyyyy') as my_new_timestamp from table
有甲骨文的任何方式,從在Oracle的Unix時間戳只得到DD-MM-YYYY一部分?的Oracle SQL - 柱與UNIX時間戳,需要DD-MM-YYYY時間戳
像:
select to_char(my_timestamp, 'ddmmyyyy') as my_new_timestamp from table
鑑於此數據...
SQL> alter session set nls_date_format='dd-mon-yyyy hh24:mi:ss'
2/
Session altered.
SQL> select * from t23
2/
MY_TIMESTAMP
--------------------
08-mar-2010 13:06:02
08-mar-2010 13:06:08
13-mar-1985 13:06:26
SQL>
..它僅僅是轉換成the time elapsed since 01-JAN-1970秒鐘的事:
SQL> select my_timestamp
2 , (my_timestamp - date '1970-01-01') * 86400 as unix_ts
3 from t23
4/
MY_TIMESTAMP UNIX_TS
-------------------- ----------
08-mar-2010 13:06:02 1268053562
08-mar-2010 13:06:08 1268053568
13-mar-1985 13:06:26 479567186
SQL>
我相信這是:
select to_char(my_timestamp, 'dd-mm-yyyy') as my_new_timestamp from table
也this reference查看Oracle的日期格式說明。
據我所知,Unix時間戳被定義爲由於1970-01-01秒數,在這種情況下:
select DATE '1970-01-01' + my_timestamp/86400 from table;
(有86400秒一天)
要忽略小時,分鐘和秒:
select TRUNC(DATE '1970-01-01' + my_timestamp/86400) from table;
但是,如果你想要的是那麼「截短的」 Unix時間戳試試這個:
select floor(my_timestamp/84600)*84600 from dual;
我的問題是:在這之後它需要一個UNIX時間戳不是Oracle日期;) – opHASnoNAME 2010-03-08 13:15:52
看到我更新的答案 – 2010-03-08 14:39:53