Microsoft SQL Server 2008 - 日期

HL8*_*HL8 5 sql sql-server datetime sql-server-2008

关于SQL Server中的日期,我有几个问题.

  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,谢谢你

And*_*y M 6

对于第一个:

UPDATE atable
SET
  DateColumn = CAST(DateTimeColumn AS date),
  TimeColumn = CAST(DateTimeColumn AS time)
Run Code Online (Sandbox Code Playgroud)

至于第二个,日期显示格式是与日期无关的东西.您可以按日期列对结果集进行排序,但在SELECT子句中,您可以使用CONVERT以所需格式显示日期.例如:

SELECT
  CONVERT(varchar, DateColumn, 106) AS Date,
  …
FROM atable
ORDER BY DateColumn
Run Code Online (Sandbox Code Playgroud)


Ale*_*x_L 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
Run Code Online (Sandbox Code Playgroud)