Sqlserver元年函数
SELECT CAST(0 AS DATETIME) --1900-01-01 00:00:00.000orm
日期转化为自定义格式:server
Select dbo.FormatDate(getdate()-2,'yyyymmddHHnnss') --20201027132733字符串
经常使用日期格式转化get
Select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') --20201027145442io
Select CONVERT(varchar(12) , getdate(), 111 ) --2020/10/27table
Select CONVERT(varchar(12) , getdate(), 112 ) --20201027date
Select CONVERT(varchar(12) , getdate(), 108 ) --14:57:33select
字符串转化为日期
CONVERT(datetime,'20201023') im
获取本周周一
Select dbo.FormatDate(DATEADD(WEEK, DATEDIFF(WEEK, 0, CONVERT(DATETIME, GETDATE(), 120) - 1), 0),'yyyymmdd'); --20201026
Select DATEADD(wk,DATEDIFF(wk,0,getdate()),0) --2020-10-26 00:00:00.000
获取本周周日
Select dateadd(wk,datediff(wk,0,getdate()),6) --2020-11-01 00:00:00.000
获取本年第几周
Select 本年第多少周='wk'+datename(week,getdate())
本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0); - 2020-10-01 00:00:00.000
今天距离元年的月份,而后用元年 + 这个相距月份,获得的日期,就是本月的第一天
本周星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,GETDATE()),0);
系统函数:
函数 | 参数/功能 |
GetDate( ) | 返回系统目前的日期与时间 |
DateDiff (interval,date1,date2) | 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1 |
DateAdd (interval,number,date) | 以interval指定的方式,加上number以后的日期 |
DatePart (interval,date) | 返回日期date中,interval指定部分所对应的整数值 |
DateName (interval,date) | 返回日期date中,interval指定部分所对应的字符串名称 |
参数 interval的设定值:
值 | 缩写(Sql Server) | Access 和 ASP | 说明 |
Year | Yy | yyyy | 年 1753 ~ 9999 |
Quarter | q | 季 1 ~ 4 | |
Month | Mm | m | 月1 ~ 12 |
Day of year | Dy | y | 一年的日数,一年中的第几日 1-366 |
Day | Dd | d | 日,1-31 |
Weekday | Dw | w | 一周的日数,一周中的第几日 1-7 |
Week | Wk | ww | 周,一年中的第几周 0 ~ 51 |
Hour | Hh | h | 时0 ~ 23 |
Minute | Mi | n | 分钟0 ~ 59 |
Second | Ss | s | 秒 0 ~ 59 |
Millisecond | Ms | - | 毫秒 0 ~ 999 |
今天的全部数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0
昨天的全部数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1
7天内的全部数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7
30天内的全部数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=30
本月的全部数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate())=0
本年的全部数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0