MySQL 日期查詢

2021-10-03 08:34:00 字數 1742 閱讀 2362

在mysql使用過程中,日期一般都是以datetime、timestamp等格式進行儲存的,但有時會因為特殊的需求或歷史原因,日期的儲存格式是varchar,那麼我們該如何處理這個varchar格式的日期資料呢

時間欄位為greens_data 型別為 varchar

1、第一種

函式str_to_date(str,format):將字串轉為時間格式

select greens_id,greens_date from greens

where str_to_date(greens_date,'%y-%m-%d') between '2019-08-01' and '2019-10-01'

order by greens_date desc

2、第二種

select greens_id,greens_date from greens

where str_to_date('開始時間','%y-%m-%d') and str_to_date('結束時間','%y-%m-%d')

order by str_to_date('時間欄位名','%y-%m-%d') desc

函式now():返回格式為yyyy-mm-dd hh:mm:ss

函式curdate():返回格式為yyyy-mm-dd

查詢本月

select * from greens where date_format( greens_date, '%y%m' ) = date_format( curdate( ) , '%y%m' )

select * from 表名 where period_diff( date_format( now( ) , '%y%m' ) , date_format( 時間欄位名, '%y%m' ) ) =1
查詢今日資料:

select * from 表名 where to_days(時間欄位名) = to_days(now());
查詢昨日資料:

select * from 表名 where to_days( now( ) ) - to_days( 時間欄位名) <= 1
查詢本年資料:

select * from `ht_invoice_information` where year(create_date)=year(now());
查詢本週資料:

select name,submittime from enterprise where yearweek(date_format(submittime,'%y-%m-%d')) = yearweek(now());
查詢上週資料:

select name,submittime from enterprise where yearweek(date_format(submittime,'%y-%m-%d')) = yearweek(now())-1;

mysql日期查詢 mysql 查詢日期

檢視本月資料 select from content publish where date format publish time,y m date format date sub curdate interval 0 month y m 檢視上個月資料 select from content pu...

mysql 日期查詢 Mysql日期查詢list

當前week的第一天 select date sub curdate interval weekday curdate 1 day 當前week的最後一天 select date sub curdate interval weekday curdate 5 day 前一week的第一天 select...

mysql日期查詢

查詢昨日一整天的資料 select date format date sub now interval 1 day y m d 00 00 00 as 昨日開始時間 date format date sub now interval 1 day y m d 23 59 59 as 昨日結束時間 查詢...