我对SQL很陌生,遇到了一个问题。我想有一个划时代的日期,即1970-01-01T00:00:00:00Z,以上述格式。
由于编程原因,I不能将其用作常量(即'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:00 Z。
提前谢谢你的帮助。
PS:我正在使用Oracle SQL Developer (如果这很重要的话)。
发布于 2016-04-06 08:59:09
你可以这样做:
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;发布于 2016-04-06 08:16:19
好吧,这可能不是最优雅的方式,但这是一种可行的方式:
select regexp_substr('1970-01-01T00:00:00Z','^....................',1,1) from dual;https://stackoverflow.com/questions/36444615
复制相似问题