這裡是乙個使用日期函式的例子。下面的查詢選擇了所有記錄,其date_col的值是在最後30天以內:
mysql> select something from table
where to_days(now()) - to_days(date_col) <= 30;
dayofweek(date)
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。這些索引值對應於odbc標準。
mysql> select dayofweek('1998-02-03');
-> 3
weekday(date)
返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
mysql> select weekday('1997-10-04 22:23:00');
-> 5
mysql> select weekday('1997-11-05');
-> 2
dayofmonth(date)
返回date的月份中日期,在1到31範圍內。
mysql> select dayofmonth('1998-02-03');
-> 3
dayofyear(date)
返回date在一年中的日數, 在1到366範圍內。
mysql> select dayofyear('1998-02-03');
-> 34
month(date)
返回date的月份,範圍1到12。
mysql> select month('1998-02-03');
-> 2
dayname(date)
返回date的星期名字。
mysql> select dayname("1998-02-05");
-> 'thursday'
monthname(date)
返回date的月份名字。
mysql> select monthname("1998-02-05");
-> 'february'
quarter(date)
返回date一年中的季度,範圍1到4。
mysql> select quarter('98-04-01');
-> 2
week(date)
week(date,first)
對於星期天是一周的第一天的地方,有乙個單個引數,返回date的週數,範圍在0到52。2個引數形式week()允許你指定星期是否開始於星期天或星期一。如果第二個引數是0,星期從星期天開始,如果第二個引數是1,從星期一開始。
mysql> select week('1998-02-20');
-> 7
mysql> select week('1998-02-20',0);
-> 7
mysql> select week('1998-02-20',1);
-> 8
year(date)
返回date的年份,範圍在1000到9999。
mysql> select year('98-02-03');
-> 1998
hour(time)
返回time的小時,範圍是0到23。
mysql> select hour('10:05:03');
-> 10
minute(time)
返回time的分鐘,範圍是0到59。
mysql> select minute('98-02-03 10:05:03');
-> 5
second(time)
回來time的秒數,範圍是0到59。
mysql> select second('10:05:03');
-> 3
period_add(p,n)
增加n個月到階段p(以格式yymm或yyyymm)。以格式yyyymm返回值。注意階段引數p不是日期值。
mysql> select period_add(9801,2);
-> 199803
period_diff(p1,p2)
返回在時期p1和p2之間月數,p1和p2應該以格式yymm或yyyymm。注意,時期引數p1和p2不是日期值。
mysql> select period_diff(9802,199703);
-> 11
date_add(date,interval expr type)
date_sub(date,interval expr type)
adddate(date,interval expr type)
subdate(date,interval expr type)
這些功能執行日期運算。對於mysql 3.22,他們是新的。adddate()和subdate()是date_add()和date_sub()的同義詞。
在mysql 3.23中,你可以使用+和-而不是date_add()和date_sub()。(見例子)date是乙個指定開始日期的
datetime或date值,expr是指定加到開始日期或從開始日期減去的間隔值乙個表示式,expr是乙個字串;它可以以
中返回「type」間隔。下表顯示了type和expr引數怎樣被關聯: type值 含義 期望的expr格式
second 秒 seconds
minute 分鐘 minutes
hour 時間 hours
day 天 days
month 月 months
year 年 years
minute_second 分鐘和秒 "minutes:seconds"
hour_minute 小時和分鐘 "hours:minutes"
day_hour 天和小時 "days hours"
year_month 年和月 "years-months"
hour_second 小時, 分鐘, "hours:minutes:seconds"
day_minute 天, 小時, 分鐘 "days hours:minutes"
day_second 天, 小時, 分鐘, 秒 "days hours:minutes:seconds"
mysql在expr格式中允許任何標點分隔符。表示顯示的是建議的分隔符。如果date引數是乙個date值並且你的計算僅僅包含year、month和day部分(即,沒有時間部分),結果是乙個date值。否則結果是乙個datetime值。
mysql> select "1997-12-31 23:59:59" + interval 1 second;
-> 1998-01-01 00:00:00
mysql> select interval 1 day + "1997-12-31";
-> 1998-01-01
mysql> select "1998-01-01" - interval 1 second;
-> 1997-12-31 23:59:59
mysql> select date_add("1997-12-31 23:59:59",
interval 1 second);
-> 1998-01-01 00:00:00
mysql> select date_add("1997-12-31 23:59:59",
interval 1 day);
-> 1998-01-01 23:59:59
mysql> select date_add("1997-12-31 23:59:59",
interval "1:1" minute_second);
-> 1998-01-01 00:01:00
mysql> select date_sub("1998-01-01 00:00:00",
interval "1 1:1:1" day_second);
-> 1997-12-30 22:58:59
mysql> select date_add("1998-01-01 00:00:00",
interval "-1 10" day_hour);
-> 1997-12-30 14:00:00
mysql> select date_sub("1998-01-02", interval 31 day);
-> 1997-12-02
mysql> select extract(year from "1999-07-02");
-> 1999
mysql> select extract(year_month from "1999-07-02 01:02:03");
-> 199907
mysql> select extract(day_minute from "1999-07-02 01:02:03");
-> 20102
mysql> select date_add('1998-01-30', interval 1 month);
-> 1998-02-28
mysql日期函式彙總 mysql日期函式彙總
一 當前時間獲取 1.now 獲得當前日期 時間 2.sysdate 獲得當前日期 時間 3.current timestamp,current timestamp 獲得當前時間戳 二 日期轉換函式 時間轉換函式 1.date format date,format time format time,...
mysql日期函式轉換 Mysql日期函式大全 轉
date add date,interval expr type date sub date,interval expr type adddate date,interval expr type subdate date,interval expr type 對日期時間進行加減法運算 adddate...
mysql日期函 MySQL 日期函式
mysql 日期函式 1,mysql dayofweek 和 weekday 獲取星期 在 mysql 中,我們可以用 dayofweek 和 weekday 函式獲取指定日期的星期.區別在於 dayofweek 獲取的星期索引是以 1 開始,而 weekday 獲取的星期索引是以 0 開始.day...