0

我有一个带有日期时间列的表,我想在 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
4

3 回答 3

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 做你肮脏的演示工作,尤其是当你用更强大的语言拥有更灵活的功能时

于 2013-10-16T03:45:16.447 回答
0

这让我得到了我想要的。

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

于 2013-10-16T03:52:22.727 回答
-1

你应该试试这个

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

或者你会在这里找到更多http://www.w3schools.com/sql/func_date_format.asp

于 2013-10-16T03:18:00.113 回答