函數(shù) | 參數(shù)/功能 |
GetDate( ) | 返回系統(tǒng)目前的日期與時(shí)間 |
DateDiff (interval,date1,date2) | 以interval 指定的方式,返回date2 與date1兩個(gè)日期之間的差值 date2-date1 |
DateAdd (interval,number,date) | 以interval指定的方式,加上number之后的日期 |
DatePart (interval,date) | 返回日期date中,interval指定部分所對(duì)應(yīng)的整數(shù)值 |
DateName (interval,date) | 返回日期date中,interval指定部分所對(duì)應(yīng)的字符串名稱 |
參數(shù) interval的設(shè)定值:
值 | 縮寫(Sql Server) | Access 和 ASP | 說明 |
Year | Yy | yyyy | 年 1753 ~ 9999 |
Quarter | q | 季 1 ~ 4 | |
Month | Mm | m | 月1 ~ 12 |
Day of year | Dy | y | 一年的日數(shù),一年中的第幾日 1-366 |
Day | Dd | d | 日,1-31 |
Weekday | Dw | w | 一周的日數(shù),一周中的第幾日 1-7 |
Week | Wk | ww | 周,一年中的第幾周 0 ~ 51 |
Hour | Hh | h | 時(shí)0 ~ 23 |
Minute | Mi | n | 分鐘0 ~ 59 |
Second | Ss | s | 秒 0 ~ 59 |
Millisecond | Ms | - | 毫秒 0 ~ 999 |
access 和 asp 中用date()和now()取得系統(tǒng)日期時(shí)間;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,這些函數(shù)的用法也類似
舉例:
1.GetDate() 用于sql server :select GetDate() 2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值為 514592 秒 DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值為 5 天 3.DatePart('w','2005-7-25 22:56:32')返回值為 2 即星期一(周日為1,周六為7) DatePart('d','2005-7-25 22:56:32')返回值為 25即25號(hào) DatePart('y','2005-7-25 22:56:32')返回值為 206即這一年中第206天 DatePart('yyyy','2005-7-25 22:56:32')返回值為 2005即2005年
Sql 取當(dāng)天或當(dāng)月的記錄
表中的時(shí)間格式是這樣的:2007-02-02 16:50:08.050, 如果直接和當(dāng)天的時(shí)間比較,就總得不到準(zhǔn)確數(shù)據(jù),但是我們可以把這種格式的時(shí)間[格式化]成 2007-02-02,也就是只有年-月-日,然后把當(dāng)天的時(shí)間也格式化成 年-月-日的格式.
這樣,思路就出來了!
我們格式化日期要用到 Convert()這個(gè)函數(shù),要用到3個(gè)參數(shù),首先來格式化當(dāng)天的日期,Convert(varchar(10),getDate(),120)
這樣我們就可以把當(dāng)天的日期格式化為: 2007-2-2,然后格式化數(shù)據(jù)庫表中的日期
Convert(varchar(10),TimeFiled,120),最后我們就可以用一條Sql語句得到當(dāng)天的數(shù)據(jù)了.
例如:
Select * From VIEW_CountBill Where Convert(varchar(10),[time],120) = Convert(varchar(10),getDate(),120)
注意:
Convert()函數(shù)中的各個(gè)參數(shù)的意義,第一個(gè)參數(shù),varchar(10)是目標(biāo)系統(tǒng)所提供的數(shù)據(jù)類型,包括 bigint 和 sql_variant。不能使用用戶定義的數(shù)據(jù)類型。第二個(gè)參數(shù)是你要轉(zhuǎn)換的字段,我這里是[time]。最后一個(gè)就是格式了,這個(gè)值是可選的:20或者120都可以,它遵循的是[ODBC 規(guī)范],輸入/輸出樣式為:yyyy-mm-dd hh:mm:ss[.fff]
具體的可以參考Sql Server的聯(lián)機(jī)幫助!
======================================================
思路:將要查找的時(shí)間字段用Month()函數(shù)取出其中的月份,然后再取出當(dāng)前月的月份,對(duì)比就OK了
例:
Select * From VIEW_CountBill Where Month([time]) = Month(getDate())
今天的所有數(shù)據(jù):select * from 表名 where DateDiff(dd,datetime類型字段,getdate())=0
昨天的所有數(shù)據(jù):select * from 表名 where DateDiff(dd,datetime類型字段,getdate())=1
7天內(nèi)的所有數(shù)據(jù):select * from 表名 where DateDiff(dd,datetime類型字段,getdate())=7
30天內(nèi)的所有數(shù)據(jù):select * from 表名 where DateDiff(dd,datetime類型字段,getdate())=30
本月的所有數(shù)據(jù):select * from 表名 where DateDiff(mm,datetime類型字段,getdate())=0
本年的所有數(shù)據(jù):select * from 表名 where DateDiff(yy,datetime類型字段,getdate())=0
查詢今天是今年的第幾天: select datepart(dayofyear,getDate())
查詢今天是本月的第幾天:1. select datepart(dd, getDate())
2.select day(getDate())
查詢本周的星期一日期是多少 (注意:指定日期不能是周日,如果是周日會(huì)計(jì)算到下周一去。所以如果是周日要減一天) SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
查詢昨天日期:select convert(char,dateadd(DD,-1,getdate()),111) //111是樣式號(hào),(100-114)
查詢本月第一天日期:Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) as firstday
查詢本月最后一天日期:Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) as lastday //修改-3的值會(huì)有相應(yīng)的變化
本月有多少天:select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast((cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' ) as datetime ))))
求兩個(gè)時(shí)間段相差幾天:select datediff(day,'2012/8/1','2012/8/20') as daysum
在指定的日期上±N天:select convert(char,dateadd(dd,1,'2012/8/20'),111) as riqi //輸出2012/8/21
在指定的日期上±N分鐘:select dateadd(mi,-15,getdate()) //查詢當(dāng)前時(shí)間15分鐘之前的日期
指定時(shí)間 : select * from 表名 where 時(shí)間字段 >= to_date('yyyy-MM-dd','1900-01-01');
今天
select * from 表名 where to_days(時(shí)間字段名) = to_days(now());
昨天
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 時(shí)間字段名) = 1
近7天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) = date(時(shí)間字段名)
近30天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) = date(時(shí)間字段名)
本月
SELECT * FROM 表名 WHERE DATE_FORMAT( 時(shí)間字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
上一月
SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 時(shí)間字段名, '%Y%m' ) ) =1
查詢本季度數(shù)據(jù)
select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(now());
查詢上季度數(shù)據(jù)
select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
查詢本年數(shù)據(jù)
select * from `ht_invoice_information` where YEAR(create_date)=YEAR(NOW());
查詢上年數(shù)據(jù)
select * from `ht_invoice_information` where year(create_date)=year(date_sub(now(),interval 1 year));
查詢當(dāng)前這周的數(shù)據(jù)
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());
查詢上周的數(shù)據(jù)
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;
查詢上個(gè)月的數(shù)據(jù)
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m') select * from user where DATE_FORMAT(pudate,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') ; select * from user where WEEKOFYEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = WEEKOFYEAR(now()) select * from user where MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now()) select * from user where YEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = YEAR(now()) and MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now()) select * from user where pudate between 上月最后一天 and 下月第一天
查詢當(dāng)前月份的數(shù)據(jù)
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')
查詢距離當(dāng)前現(xiàn)在6個(gè)月的數(shù)據(jù)
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();
查詢時(shí)間區(qū)間:
select * from 表 WHERE 時(shí)間字段 > '2018-12-11 13:36:31' and 時(shí)間字段 = '2019-01-09 13:36:31'
到此這篇關(guān)于SQLServer 日期函數(shù)大全(小結(jié))的文章就介紹到這了,更多相關(guān)SQLServer 日期函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:汕頭 濟(jì)寧 泰安 安徽 廣東 臺(tái)州 武威 濟(jì)源
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQLServer 日期函數(shù)大全(小結(jié))》,本文關(guān)鍵詞 SQLServer,日期,函數(shù),大全,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。