表:user ( id, createdon ) ——(id,建立時間)
situation #1
查出所有建立時間在2023年9月1日之後的記錄。
# mysql (最簡單了)
select * from user where createdon>'2011-09-01'
# mysql的日期處理能力很強大,可以精確到年、月、日、時、分、秒、毫秒。
# 例如:
select * from user where createdon>='2011-09'
會查出所有建立時間在2023年9月之後的記錄。
#oracle
select * from user where trunc(createdon)>trunc(to_date('2011-09-01', 'yyyy-mm-dd'))
# trunc() 是oracle的內建函式,它將日期資料轉換為yyyy/mm/dd的格式。
更詳細的內容可參考trunc function (with dates)或者trunc (date)。
附:mysql 為日期增加乙個時間間隔:date_add()
set @dt = now();
select date_add(@dt, interval 1 day); -- add 1 day
select date_add(@dt, interval 1 hour); -- add 1 hour
select date_add(@dt, interval 1 minute); -- ...
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);
select date_add(@dt, interval -1 day); -- sub 1 day
situation #2
查出所有在2023年09月建立的記錄。
# mysql
select * from user where createdon>='2011-09' and createdon<'2011-10'
#oracle
select * from user where trunc(createdon, 'month')=trunc(to_date('2011-10-1', 'yyyy-mm-dd'), 'month')
# trunc() 是oracle的內建函式。更詳細的內容可參考
trunc function (with dates)或者
trunc (date)。。
hql
對於hql來說,日期是個頭疼的問題,不過可以借助hql表示式(hql expressions)來做到。
比如第二種情況,
string hql = "from user where year(createdon)=2011 and month(createdon)=9 order by createdon desc";
關於hql表示式,詳見
hql expressions。
mysql日期查詢 日期比較
1.convert轉成string,在用like查詢。select from table1 where convert varchar,yourtime,120 like 2017 06 30 2.between select from table1 where yourtime between 2...
Java日期比較
在進行業務處理時,遇到乙個需要比較日期但是不包含時分秒的判斷問題 dateformat f new dateformat yyyy mm dd if f.parse f.format user.getexpirydate before f.parse f.format new date 1 f.fo...
java日期比較
public intcompareto date anotherdate 比較兩個日期的順序。指定者 介面comparable 中的compareto 引數 anotherdate 要比較的date。返回 如果引數 date 等於此 date,則返回值0 如果此 date 在 date 引數之前,則...