mysql中怎么查詢一周內,三個月內
創新互聯公司是一家專業提供商州企業網站建設,專注與成都網站制作、成都網站建設、H5技術、小程序制作等業務。10年已為商州眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。
使用sql語句查詢日期在一周內的數據
select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查詢當天日期在一周年的數據
select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查詢當天的所有數據
SELECT * FROM A where datediff(d,datetime,getdate()) =30 //前30天
SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) =1 // 上一月
--查詢當天:
select * from info where DateDiff(dd,datetime,getdate())=0
--查詢24小時內的:
select * from info where DateDiff(hh,datetime,getDate())=24
--info為表名,datetime為數據庫中的字段值
--查詢當天:
select * from info where DateDiff(dd,datetime,getdate())=0
--查詢24小時內的:
select * from info where DateDiff(hh,datetime,getDate())=24
--info為表名,datetime為數據庫中的字段值
Sql代碼
--查詢當天記錄另類的方法
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
--查詢當天記錄另類的方法
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 函數:
語法:
DATEDIFF ( datepart , startdate , enddate )
備注:enddate 減去 startdate。如果 startdate 晚于 enddate,則返回負值。
如果結果超出整數值范圍,則 DATEDIFF 將產生錯誤。對于毫秒,最大數是 24 天 20 小時 31 分鐘零 23.647 秒。對于秒,最大數是 68 年。
跨分鐘、秒和毫秒等邊界計算的方法使得 DATEDIFF 指定的結果在所有數據類型中均一致。結果是帶正負號的整數值,它等于跨第一個和第二個日期間的 datepart 邊界數。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數是 1。
可以再MSSQL中測試:
Sql代碼
--兩個時間差剛好是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')
--兩個時間差剛好是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個月 )
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
====================
說明一下思路:
子查詢計算出入職的年數,并將結果添加字段別名t_year,這個語句只select了t_date字段,其他字段請按需要添加.
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
用到時間格式化,按月分組合計,還有對于函數空處理成零。組合起來就贏了
select date_format( now( ) , ‘%Y%m’ ) , date_format(date_sub(now(),interval 6 month) , ‘%Y%m’ )
網頁題目:mysql怎么算近半年 mysql查詢半年內的數據
文章網址:http://vcdvsql.cn/article4/hpjdoe.html
成都網站建設公司_創新互聯,為您提供標簽優化、靜態網站、網站營銷、定制網站、定制開發、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯