关于SQL Server中的日期,我有几个问题。
如何将datetime
值“2011-08-10 14:56:17.267”分成两个单独的列中的日期和时间戳。例如。日期“2011-08-10”和时间戳“14:56:17”
我想将时间戳从datetime
值移到“2011-08-10”中,并且仍然可以按日期排序数据(因此不会转换为varchar
)。也可以将日期值更改为“2011年8月10日”,并且仍然可以排序(不按字母顺序排序,但按实际日期顺序排序)。
谢谢你, HL
答案 0 :(得分: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
答案 1 :(得分: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