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