从sql中给定的日期时间提取一周中的时间和日期

从sql中给定的日期时间提取一周中的时间和日期,sql,sql-server,tsql,datetime,Sql,Sql Server,Tsql,Datetime,我尝试了转换(TIME,sample\u datetime),但我的软件无法识别时间类型 如何提取样本datetime并从一个变量中提取时间,从另一个变量中提取星期几?您没有指定sql server版本,但 选择datepart(dw,yourdate)应该这样做 使用函数: // returns 4 SELECT DATEPART(day, '2010-09-04 11:22:33') // returns 7 SELECT DATEPART(dw, '2010-09-04 11:22:33

我尝试了
转换(TIME,sample\u datetime)
,但我的软件无法识别时间类型


如何提取样本
datetime
并从一个变量中提取时间,从另一个变量中提取星期几?

您没有指定sql server版本,但

选择datepart(dw,yourdate)
应该这样做

使用函数:

// returns 4
SELECT DATEPART(day, '2010-09-04 11:22:33')

// returns 7
SELECT DATEPART(dw, '2010-09-04 11:22:33')

// returns 11:22:33
SELECT CAST(DATEPART(HOUR, '2010-09-04 11:22:33') AS VARCHAR(2)) + ':'
     + CAST(DATEPART(MINUTE, '2010-09-04 11:22:33') AS VARCHAR(2)) + ':'
     + CAST(DATEPART(SECOND, '2010-09-04 11:22:33')AS VARCHAR(2))
关于时间数据类型-自Sql Server 2008年引入:

SELECT CAST('2010-09-04 11:22:33'  as Time)

带有DW的DATEPART或DATENAME将在一周中的某一天起作用,具体取决于您需要的格式

SELECT DATEPART(DW, GETDATE())
SELECT DATENAME(DW, GETDATE())
您可以将datetime转换为具有特定格式的varchar,以仅获取时间

SELECT CONVERT(VARCHAR, GETDATE(), 14)
2008有一个时间数据类型,但听起来不像是在运行它