时间日期的形式为“YYYY-MM-DD" T" HH24:MI:SS" Z"'

时间:2016-04-06 07:44:55

标签: sql oracle datetime

我是SQL新手并遇到了问题。我希望以上述格式提供纪元日期,即1970-01-01T00:00:00Z。

出于编程原因,我不能将其用作常量(即' 1970-01-01T00:00:00Z')。我需要一个声明,将其作为输出。我用过这个:

select to_char(TRUNC(add_months(sysdate,-555),'MM'), 'YYYY-MM-DD"T"HH24:MI:SS"Z"') from dual;

但是这个陈述的唯一问题是它不会给我下个月我想要的日期,即月份具体它只适用于2016年4月。但我需要一个日期始终保持1970-01-01T00: 00:00Z

提前感谢您的帮助。

PS:我正在使用Oracle SQL Developer(如果重要的话)。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

select '1970-01-01T00:00:00Z' from dual;

或者如果你想因为某些原因而处理它,这似乎是毫无意义的开销:

select to_char(date '1970-01-01', 'YYYY-MM-DD"T"HH24:MI:SS"Z"') from dual;

要么给你想要的字符串。但它是一个字符串,不是一个日期。如果你想把它作为一种正确的数据类型(我不认为你这样做,但也许这是为了比较),它需要是一个带时区的时间戳,你可以得到它:

select timestamp '1970-01-01 00:00:00 UTC' from dual;

答案 1 :(得分:0)

这可能不是最优雅的方式,但它是一种可行的方式:

select regexp_substr('1970-01-01T00:00:00Z','^....................',1,1) from dual;