我们怎样才能得到约会;时间与sql server中的单个日期时间字段分开

时间:2009-08-12 06:37:52

标签: sql-server

我在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查询。

4 个答案:

答案 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)

参考:SQL Server Date/Time Formatters

答案 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)