mysql中怎么查詢一周內(nèi),三個(gè)月內(nèi)
創(chuàng)新互聯(lián)公司是一家專業(yè)提供商州企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為商州眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
使用sql語句查詢?nèi)掌谠谝恢軆?nèi)的數(shù)據(jù)
select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查詢當(dāng)天日期在一周年的數(shù)據(jù)
select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查詢當(dāng)天的所有數(shù)據(jù)
SELECT * FROM A where datediff(d,datetime,getdate()) =30 //前30天
SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) =1 // 上一月
--查詢當(dāng)天:
select * from info where DateDiff(dd,datetime,getdate())=0
--查詢24小時(shí)內(nèi)的:
select * from info where DateDiff(hh,datetime,getDate())=24
--info為表名,datetime為數(shù)據(jù)庫中的字段值
--查詢當(dāng)天:
select * from info where DateDiff(dd,datetime,getdate())=0
--查詢24小時(shí)內(nèi)的:
select * from info where DateDiff(hh,datetime,getDate())=24
--info為表名,datetime為數(shù)據(jù)庫中的字段值
Sql代碼
--查詢當(dāng)天記錄另類的方法
SELECT *
FROM j_GradeShop
WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')
AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)
ORDER BY GAddTime DESC
--查詢當(dāng)天記錄另類的方法
SELECT *
FROM j_GradeShop
WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')
AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)
ORDER BY GAddTime DESC
DATEDIFF 函數(shù):
語法:
DATEDIFF ( datepart , startdate , enddate )
備注:enddate 減去 startdate。如果 startdate 晚于 enddate,則返回負(fù)值。
如果結(jié)果超出整數(shù)值范圍,則 DATEDIFF 將產(chǎn)生錯(cuò)誤。對(duì)于毫秒,最大數(shù)是 24 天 20 小時(shí) 31 分鐘零 23.647 秒。對(duì)于秒,最大數(shù)是 68 年。
跨分鐘、秒和毫秒等邊界計(jì)算的方法使得 DATEDIFF 指定的結(jié)果在所有數(shù)據(jù)類型中均一致。結(jié)果是帶正負(fù)號(hào)的整數(shù)值,它等于跨第一個(gè)和第二個(gè)日期間的 datepart 邊界數(shù)。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數(shù)是 1。
可以再M(fèi)SSQL中測試:
Sql代碼
--兩個(gè)時(shí)間差剛好是24
--打印的方式
print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')
--查詢的方式
print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')
--兩個(gè)時(shí)間差剛好是24
--打印的方式
print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')
--查詢的方式
print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')
Sql代碼
--本月記錄
SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0
-- 算法:日期 = ( 今天 - 3個(gè)月 )
WHERE sendtime = DATE_SUB( CURRENT_DATE() , INTERVAL 3 MONTH );
我假定你的入職日期字段格式為date,并且字段名為 t_date,那么下面這條語句可能可以滿足你的要求.
select * from( SELECT year(now())-year(t_date) as t_year FROM `test_t` where year(t_date) 1990 ) as tmp_data where t_year 10
====================
說明一下思路:
子查詢計(jì)算出入職的年數(shù),并將結(jié)果添加字段別名t_year,這個(gè)語句只select了t_date字段,其他字段請(qǐng)按需要添加.
SELECT year(now())-year(t_date) as t_year FROM `test_t` where year(t_date) 1990
然后使用另一條查詢來得到大于10年的職工.
select * from (子查詢語句) as temp_data where t_year10
用到時(shí)間格式化,按月分組合計(jì),還有對(duì)于函數(shù)空處理成零。組合起來就贏了
select date_format( now( ) , ‘%Y%m’ ) , date_format(date_sub(now(),interval 6 month) , ‘%Y%m’ )