我在sqlserver中有很少的字段(empid,到达时间)。我想获得如下查询输出
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查询。
答案 0 :(得分:2)
您可以使用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)
答案 1 :(得分:0)
尝试功能DATEPART
。它的工作原理如下:
SELECT DATEADD(D, 0, DATEDIFF(D, 0, GETDATE()))
答案 2 :(得分:0)
SELECT empid, CONVERT(VARCHAR(10),arrivaltime,101) as
date,CONVERT(VARCHAR(10),arrivaltime,108) as time FROM Table
这将显示几乎如上所述的结果。我唯一不知道的是如何格式化AM / PM显示的时间
答案 3 :(得分:0)
使用以下查询获得您想要的确切结果:
select empid, convert(varchar,arrivaltime,101), substring(convert(varchar,arrivaltime,100),len(convert(varchar,arrivaltime,100))-6,7)