select dateadd(day,iid-1,'1949-01-01') as 日期,
year(dateadd(day,iid-1,'1949-01-01')) as 年份,
month(dateadd(day,iid-1,'1949-01-01')) as 月份,
day(dateadd(day,iid-1,'1949-01-01')) as 日期,
datepart(quarter,(dateadd(day,iid-1,'1949-01-01'))) as 季度,
datepart(weekday,(dateadd(day,iid-1,'1949-01-01'))) as 星期,
day(dateadd(day,iid-1,'1949-01-01')) as 月的第几表,
datepart(week,(dateadd(day,iid-1,'1949-01-01'))) as 年的第几周
from #tmp 行不?
year(dateadd(day,iid-1,'1949-01-01')) as 年份,
month(dateadd(day,iid-1,'1949-01-01')) as 月份,
day(dateadd(day,iid-1,'1949-01-01')) as 日期,
datepart(quarter,(dateadd(day,iid-1,'1949-01-01'))) as 季度,
datepart(weekday,(dateadd(day,iid-1,'1949-01-01'))) as 星期,
day(dateadd(day,iid-1,'1949-01-01')) as 月的第几表,
datepart(week,(dateadd(day,iid-1,'1949-01-01'))) as 年的第几周
from #tmp 行不?
解决方案 »
- 为什么ntext数据类型 只能插入有限的字符数?
- 查询问题~帮下忙
- sql server 2000 本地查询分析器,企业管理器正常连接到数据库,远程企业管理器不能添加改数据库。
- Service Broker传送的XML消息带特殊字符会引发Broker中止?
- 如何用存储过程实现对text数据类型的字段进行写入和读取操作
- 好友关系链数据库设计求教,一定要高手解答
- sql怎么给结果集重新编号
- 可不可以让sql server 每隔一段时间自动执行一条sql语句?
- 請問各位:如何在查看已建好的SQL SERVER數據庫的觸發器有哪些?難道要一個表一個表的查看嗎???另,請問李維有沒有網站?多謝
- 在sql server下,有沒有辦法讓select 語句區分大小寫(20--40)
- 如何在语句块中创建存储过程、触发器、视图
- 请问为什么这样不能得到结果呢?
select datepart(weekday,getdate())
select datepart(week,getdate())
,文字星期=datename(weekday,getdate())
,第几周=datepart(week,getdate())
Transact-SQL 参考
DATEPART
返回代表指定日期的指定日期部分的整数。语法
DATEPART ( datepart , date ) 参数
datepart是指定应返回的日期部分的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。日期部分 缩写
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
Hour hh
minute mi, n
second ss, s
millisecond ms
week (wk, ww) 日期部分反映对 SET DATEFIRST 作的更改。任何一年的 1 月 1 日定义了 week 日期部分的开始数字,例如:DATEPART(wk, 'Jan 1, xxxx') = 1,此处 xxxx 代表任一年。weekday (dw) 日期部分返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday 日期部分产生的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第一天。date是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。对 1753 年 1 月 1 日之后的日期用datetime 数据类型。更早的日期存储为字符数据。当输入 datetime 值时,始终将其放入引号中。因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049 (默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。 返回类型
int注释
DAY、MONTH、和 YEAR 函数分别是 DATEPART(dd, date)、DATEPART(mm, date)、和 DATEPART(yy, date) 的同义词。示例
GETDATE 函数返回当前日期;然而,比较时并不总是需要完整的日期信息(通常只是对日期的一部分进行比较)。此示例显示 GETDATE 及 DATEPART 的输出。SELECT GETDATE() AS 'Current Date'
GO下面是结果集:Current Date
---------------------------
Feb 18 1998 11:46PM SELECT DATEPART(month, GETDATE()) AS 'Month Number'
GO下面是结果集:Month Number
------------
2 此示例假设日期是 5 月 29 日。SELECT DATEPART(month, GETDATE())
GO下面是结果集:-----------
5 (1 row(s) affected)在此示例中,以数字表示日期。注意:SQL Server 将 0 解释为 01/01/1900。SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0)下面是结果集:----- ------ ------
1 1 1900
请参见CAST 和 CONVERT 数据类型日期和时间函数 ©1988-2000 Microsoft Corporation。保留所有权利。
默认情况下,SQL是以星期天作为一周的第一天.所以,要取得以星期一为一周的第一天,要用:
datepart(weekday,getdate())-1