日期转换

时间:2013-10-16 03:10:38

标签: sql-server sql-server-2008

我有一个带有日期时间列的表我希望以hh:mm:ss检索日期,其中小时为12小时。

我尝试了以下内容。

 convert(varchar(10), t2.CSM_START_TIME,108),
 convert(varchar(2),datepart(hour,t2.CSM_START_TIME))
    +':'+convert(varchar(2),datepart(mm,t2.CSM_START_TIME))
    +':'+convert(varchar(2), datepart(SECOND,t2.CSM_START_TIME))  
    as START_TIME

3 个答案:

答案 0 :(得分:3)

SELECT LTRIM(RIGHT(CONVERT(CHAR(20),GETDATE(),22),11));

结果:

11:40:15 PM

或者如果你真的不想要AM / PM(我不明白):

SELECT LTRIM(LEFT(RIGHT(CONVERT(CHAR(20), GETDATE(),22),11),8));

结果:

11:40:15

在客户端格式化这一点要好得多。例如,如果您使用的是C#,请查看.Format().ToString()。不要让SQL Server执行脏表示工作,尤其是当您有much more flexible features in a more powerful language时。

答案 1 :(得分:0)

这让我得到了我想要的东西。

,substring(convert(varchar(40),t2.CSM_START_TIME,109),12,9)+''+ substring(convert(varchar(40),t2.CSM_START_TIME,109),25,2)

答案 2 :(得分:-1)

你应该试试这个

DATE_FORMAT(NOW(),'%h:%i %p')

或者你会在http://www.w3schools.com/sql/func_date_format.asp找到更多信息。