如何分别获得时间和日期?

时间:2009-10-25 12:16:39

标签: sql-server

使用SQL Server 2005

表1

时间

12/05/2009 08:30:49
12/05/2009 17:00:00
13/05/2009 21:00:00

...

上表这两个值都是相同的列,这里我想分隔日期和时间等列

预期产出

Date       Time

12/05/2009 08:30:49
12/05/2009 17:00:00
13/05/2009 21:00:00

4 个答案:

答案 0 :(得分:11)

您可以检索单独的日期和时间部分,例如:

SELECT 
    CONVERT(VARCHAR(10),DateField,101) as DatePart,
    CONVERT(VARCHAR(10),DateField,108) as TimePart
FROM YourTable

有关详细信息,请参阅CONVERT documentation

上面的代码片段将DataPart和TimePart作为varchar返回。如果您有兴趣将它们检索为日期时间字段,请尝试:

SELECT 
    DATEADD(D, 0, DATEDIFF(D, 0, DateField)) as DatePart,
    DATEADD(day, -DATEDIFF(D, 0, DateField), DateField) as TimePart
FROM YourTable

答案 1 :(得分:3)

以下查询分别返回当前系统日期/时间的日期和时间:

选择   CONVERT(VARCHAR(8),GETDATE(),108)AS [时间],   CONVERT(VARCHAR(10),GETDATE(),101)AS [date]

答案 2 :(得分:1)

select 
CONVERT(VARCHAR(8), GETDATE(), 108) as [time],
CONVERT(VARCHAR(8), GETDATE(), 111) as [date]

请参阅this reference for all formats

答案 3 :(得分:1)

对pmarflee的答案稍作修改,因为你似乎想要日期为dd / mm / yy而不是mm / dd / yy:

SELECT CONVERT(VARCHAR(8) , GETDATE() , 108) AS [time], CONVERT(VARCHAR(10) , GETDATE() , 103) AS [date]