SQL中的日期选择查询

时间:2014-09-04 23:37:31

标签: sql

我的选择查询中的日期格式为

Thu Sep 04 23:03:30 GMT 2014

并且在我的表日期中采用这种格式

13-NOV-13 03.38.22.000000000 AM

如何以DB格式转换。我尝试使用

TO_CHAR('Thu Sep 04 23:03:30 GMT 2014','DD-MMM-YY HH:MI:SS') 

但没有工作。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

此:

select to_char(timestamp '2014-09-04 23:03:30 GMT','DD-MON-YY HH:MI:SS')
from dual

转换'Thu Sep 04 23:03:30 GMT 2014'所代表的时间戳

格式为'DD-MON-YY HH:MI:SS'(我认为你的意思是MON,而不是MMM)

但输入文字必须更改为'2014-09-04 23:03:30 GMT'(如图所示)

小提琴: http://sqlfiddle.com/#!4/d41d8/34741/0

<强>输出:

04-SEP-14 11:03:30

您在选择列表中放置的格式仅包含秒,但是,您指示在表中存储小数秒(可能是时间戳字段),以匹配该格式使用FF而不是SS。此外,您表明您使用的是HH12格式,而不是HH(12小时对24小时)。要做那些你想要的格式不同于你目前试图转换为:

select to_char(timestamp '2014-09-04 23:03:30 GMT','DD-MON-YY HH12:MI:FF AM')
from dual

小提琴: http://sqlfiddle.com/#!4/d41d8/34744/0

请注意,如果时间是在当天的后半段,它会显示PM而不是AM,尽管你在sql中看到了AM(参考http://www.techonthenet.com/oracle/functions/to_char.php

<强>输出:

04-SEP-14 11:03:000000000 PM

答案 1 :(得分:0)

试试这个:

LEFT(DATENAME(dw,date),3) +' '+     CAST(date AS VARCHAR(20))

答案 2 :(得分:0)

您是否尝试过转换?

CONVERT(NVARCHAR(20),GETDATE(),13)

可以在此处找到所有不同的日期格式:http://msdn.microsoft.com/en-us/library/ms187928.aspx