2011-08-10 116 views
5

我有几个关于SQL Server日期的问题。Microsoft SQL Server 2008 - 日期

  1. 如何分离datetime值 “2011-08-10 14:56:17.267” 为日期和时间戳在两个单独的列。例如。日期“2011-08-10”和时间戳“14:56:17”

  2. 我想从datetime值中删除时间戳到“2011-08-10”,仍然可以按日期排序数据(因此未转换为varchar)。此外,在那里将日期值更改为'2011年8月10日',并且仍然可以排序(不按字母顺序排列,但以实际日期排列)。

谢谢 HL

+0

这两个问题应该单独发布。 –

回答

0

使用convert函数的参数从资源http://www.mssqltips.com/tip.asp?tip=1145

-- simple conversion example: 
SELECT CONVERT(VARCHAR(10), GETDATE(), 102) -- for date 
SELECT CONVERT(VARCHAR(10), GETDATE(), 8) -- for time 
6

对于第一种:

UPDATE atable 
SET 
    DateColumn = CAST(DateTimeColumn AS date), 
    TimeColumn = CAST(DateTimeColumn AS time) 

至于第二个日期显示格式与日期无关值。您可以按日期列排序结果集,但在SELECT子句中,您可以使用CONVERT以所需格式显示日期。例如:

SELECT 
    CONVERT(varchar, DateColumn, 106) AS Date, 
    … 
FROM atable 
ORDER BY DateColumn