我在sqlserver中有几个字段(empid,arrivaltime)。我想要得到的查询输出如下我们如何才能从sqlserver中的单个日期时间字段中获取日期和时间
79 08/11/2009 3:21PM
78 08/11/2009 3:19PM
98 08/11/2009 9:02AM
97 08/11/2009 9:00AM
96 08/11/2009 8:56AM
95 08/11/2009 8:53AM
请给我这个sql查询。
我在sqlserver中有几个字段(empid,arrivaltime)。我想要得到的查询输出如下我们如何才能从sqlserver中的单个日期时间字段中获取日期和时间
79 08/11/2009 3:21PM
78 08/11/2009 3:19PM
98 08/11/2009 9:02AM
97 08/11/2009 9:00AM
96 08/11/2009 8:56AM
95 08/11/2009 8:53AM
请给我这个sql查询。
尝试功能DATEPART
。它的工作原理是这样的:
SELECT DATEADD(D, 0, DATEDIFF(D, 0, GETDATE()))
您可以使用CONVERT
函数使用日期/时间格式化程序。
SELECT
CONVERT(VARCHAR(10), ArrivalTime, 103) AS [ArrivalDate],
CONVERT(VARCHAR(10), ArrivalTime, 8) AS [ArrivalTime]
或者,您还可以通过提供格式来使用UDF given here格式化日期/时间。
要获得AM/PM格式的时间,你必须调整代码有点像这样 -
SELECT
SUBSTRING(CONVERT(VARCHAR(20), ArrivalTime, 9), 13, 5) + ' ' +
SUBSTRING(CONVERT(VARCHAR(30), ArrivalTime, 9), 25, 2)
SELECT empid, CONVERT(VARCHAR(10),arrivaltime,101) as
date,CONVERT(VARCHAR(10),arrivaltime,108) as time FROM Table
这将显示结果几乎如上所述。我不知道的唯一的事情就是如何格式化时间与AM显示/ PM
使用以下查询得到确切的结果,只要你想:
select empid, convert(varchar,arrivaltime,101), substring(convert(varchar,arrivaltime,100),len(convert(varchar,arrivaltime,100))-6,7)
太好了!这是工作...但它显示24小时格式的到达时间。我需要它是12小时格式,如05:34 AM – Partha 2009-08-12 06:50:13