WeekDay的名字跟系统的语言设置有管,跟DateFirst的设置没有关系
(1) 查看当前的语言设置
select @@language
(2) 查看系统支持的语言
select alias,name, * from sys.syslanguages
(3) 设置语言
set LANGUAGE 'Simplified Chinese' set LANGUAGE 'us_english'
(4) 使用DateName获取WeekDay的名字
set LANGUAGE 'Simplified Chinese' select DATENAME(WEEKDAY,getutcdate()) set LANGUAGE 'us_english' select DATENAME(WEEKDAY,getutcdate())
四. 日期函数
sqlserver_时间格式化_年月日
函数名称 参数 示例 说明
dateadd(日期部分,数字,日期)
select dateadd(year,45,'1990-12-11') 返回 2035-12-11 00:00:00.000
select dateadd(month,45,'1990-12-11') 返回 1994-09-11 00:00:00.000
select dateadd(mm,45,'1990-12-11') 返回 1994-09-11 00:00:00.000
select dateadd(qq,12,'1990-12-11') 返回 1993-12-11 00:00:00.000
select dateadd(hh,12,'1990-12-11') 返回 1990-12-11 12:00:00.000
select dateadd(yy,-12,'1990-12-11') 返回 1978-12-11 00:00:00.000
返回给指定日期加上一个时间间隔后的新的日期值。
数字:用于与指定的日期部分相加的值。如果指定了非整数值,则将舍弃该值的小数部分,舍弃时不遵循四舍五入。
日期:指定的原日期
在此函数中 :dw,dy,dd 效果一样都表示天
datediff(日期部分,开始日期,结束日期)
select datediff(yy,'1990-12-11','2008-9-10') 返回 18
selectdatediff(mm,'2007-12-11','2008-9-10') 返回 9
返回两个指定日期的指定日期部分的差的整数值。
在此函数中dw,dy,dd 效果一样都表示天
datename(日期部分,日期)
select datename(mm,'2007-12-11') 返回 12 select datename(dw,'2007-12-11') 返回星期二 select datename(dd, ‘2007-12-11') 返回 11 select datename(wk, ‘2007-12-11') – 50 一年中的第几个星期 select datename(dy, ‘2007-12-11') – 345 一年中的第几天 select DATENAME(YYYY,GETDATE()) + DATENAME(MM,GETDATE()) – 201803
返回表示指定日期的指定日期部分的字符串。
dw 表示一星期中星期几
wk 表示一年中的第几个星期
dy 表示一年中的第几天
datepart(日期部分,日期)
select datepart(mm,'2007-12-11')返回 12 select datepart(dw,'2007-12-11')返回 3 select datepart(dd, ‘2007-12-11')返回 11 select DATEPART(YYYY,GETDATE()) + DATENAME(MM,GETDATE()) – 2021
返回表示指定日期的指定日期部分的整数。
wk 表示一年中的第几个星期
dy 表示一年中的第几天,
dw 表示一星期中星期几,返回整数默认 1 为星期天
getdate()无参数
select getdate() 返回 2222-02-22 12:34:19.070
返回当前系统日期和时间。
getutcdate()无参数
select getutcdate() 返回2222-02-22 04:34:19.073
返回表示当前的UTC(世界标准时间)时间。即格林尼治时间(GMT)
1、上月的第一天
SELECT CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)
2、上月的最后一天
SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+' 23:59:59'
3、本月的第一天
SELECT CONVERT(CHAR(10),DATEADD(dd,-DAY(GETDATE())+1,GETDATE()),111)
4、本月的最后一天
SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0)),111)+' 23:59:59'
5、来月的最后第一天
SELECT CONVERT(CHAR(10),DATEADD(m,1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)
6、来月的最后一天
SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+2,0)),111)+' 23:59:59'
日期部分 含义 :
缩写year年yy,yyyy
quarter季qq,q
month月mm, m
dayofyear天(请看函数中的说明)dy, y
day天(请看函数中的说明)dd, d
week星期wk, ww
weekday天(请看函数中的说明)dw, w
hour小时hh
minute分钟mi, n
second秒ss, s
millisecond毫秒ms
==================================================
Sql Server 查询指定范围(一周,一月,本周,本月等)内的数据
1.查询今日的所有数据
select * from 表名 where datediff(day,字段名,getdate())=0
2.查询昨日的所有数据
select * from 表名 where datediff(day,字段名,getdate()-1)=0
3.查询当天日期在一周前的数据
selcet * from 表名 where datediff(week,字段名,getdate()-1)=0
4.查询前30天的数据
select * from 表名 where datediff(d,字段名,getdate())<=30
5.查询上一个月的数据
select * from 表名 where datediff(m,字段名,getdate())<=1
6.查询当天的数据
select * from 表名 where datediff(dd,字段名,getdate())=0
7.查询24小时内的数据
select * from 表名 where datediff(hh,字段名,getdate())
8.查询本周的数据
select * from 表名 where datediff(week,字段名,getdate())=0
9.查询本月的数据
select * from 表名 where datediff(month,字段名,getdate())=0
10.查询本季的数据
select * from 表名 where datediff(qq,字段名,getdate())=0
到此这篇关于SQLServer日期函数总结案例详解的文章就介绍到这了,更多相关SQLServer日期函数总结内容请搜索
更多SQL内容来自木庄网络博客