1. 程式人生 > >mysql 的日期和函式

mysql 的日期和函式

"""
-- 日期和時間函式 :
"""

"""
-- DAYOFWEEK(date):返回日期date的星期索引(1=星期天,2=星期一, …7=星期六)。 dayofweek(date)
-- select DAYOFWEEK('1998-02-03');
-- select DAYOFWEEK(now());
-- SELECT DAYOFWEEK("1995-02-09")

-- WEEKDAY(date):返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。 weekday(date)
-- select WEEKDAY('1997-11-05');
-- SELECT WEEKDAY("1995-02-09")

-- weekday(date) 和 dayofweek(date) 都可以判斷今天是周幾

-- DAYOFMONTH(date):返回date的月份中的日期.在1到31範圍內。dayofmonth(date) 返回這是一個月的第幾天
-- select DAYOFMONTH('1998-02-03');
-- SELECT dayofmonth("2018-2-30")   # 日期不正確返回 NULL
-- SELECT dayofmonth("1995-02-09");
-- SELECT dayofmonth("2018-03-31");

-- DAYOFYEAR(date):返回date在一年中的日數, 在1到366範圍內 dayofyear(date)返回date在一年中的第幾天
-- select DAYOFYEAR('1998-02-03');
-- SELECT dayofyear("1995-02-09");
-- SELECT dayofyear("1995-02-30")      # 日期不正確返回 NULL

-- MONTH(date):返回date的月份,範圍1到12。  month(date)  返回date的月份,1-12
-- select MONTH('1998-02-03');   2
-- SELECT month("1995-12-26");   12

-- DAYNAME(date):返回date的星期名字。  dayname(date)     返回星期幾的名字 英文顯示
-- select DAYNAME("1998-02-05");       	  #Thursday
-- SELECT dayname("2018-08-07");          #Tuesday
-- SELECT dayname("2018-08-06");          #Monday

-- MONTHNAME(date) :返回date的月份名字。  monthname(date) 返回date的月份名字,英文顯示
-- select MONTHNAME("1998-02-05");        #February
-- SELECT monthname("2018-08-07")         # August
-- SELECT MONTHNAME("2018-11-10")         #November

-- QUARTER(date):返回date一年中的季度,範圍1到4。  quarter(date) 範圍在 1-4 之間
-- select QUARTER('1998-04-01');
-- SELECT quarter("2018-08-08");

-- WEEK(date,first):對於星期天是一週的第一天的地方,有一個單個引數,返回date的週數,範圍在0到52。
-- 2個引數形式WEEK()允許你指定星期是否開始於星期天或星期一。
-- 如果第二個引數是0,星期從星期天開始,如果第二個引數是1,從星期一開始。
-- select WEEK('2009-01-20');   # 返回的是一年中的第幾周
-- select WEEK('2009-02-20',0); # 兩個引數 0 表示一週從星期天開始計算
-- select WEEK('2009-02-20',1); # 1表示一週從星期一開始計算

-- YEAR(date):返回date的年份,範圍在1000到9999。  year(date) 返回date的年份,範圍在1000-9999
-- select YEAR('98-02-03');        #1998
-- SELECT YEAR("2018-05-06");      #2018   年
-- SELECT month("2018-05-06")      # 5     月
-- SELECT dayofmonth("2018-05-06") # 6     日

-- HOUR(time):返回time的小時,範圍是0到23。
-- select HOUR('10:05:03');  			 # 10
-- SELECT hour("12:35:43")         # 12    時

-- MINUTE(time):返回time的分鐘,範圍是0到59。
-- select MINUTE('98-02-03 10:05:03'); #5
-- SELECT minute("12:40:12")       # 40    分

-- SECOND(time):回來time的秒數,範圍是0到59
-- select SECOND('10:05:03');      # 3
-- SELECT second("08:12:30")       # 30    秒

-- CURRENT_DATE:以‘YYYY-MM-DD’或YYYYMMDD格式返回今天日期值,取決於函式在一個字串還是數字上下文被使用。
-- select curdate();               # 2018-08-07 返回當前的日期
-- SELECT CURRENT_DATE()           # 2018-08-07 返回當前的日期

-- CURRENT_TIME:以‘HH:MM:SS’或HHMMSS格式返回當前時間值
-- SELECT curtime();               # 09:51:47    返回當前的時間值

-- NOW():以‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回當前的日期和時間
-- select NOW();                   # 2018-08-07 09:50:39  返回當前的日期個是時間

-- DATE_ADD(date,INTERVAL expr type) ,進行日期增加的操作,可以精確到秒
-- DATE_SUB(date,INTERVAL expr type) ,進行日期減少的操作,可以精確到秒

-- SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;  	  # 1998-01-01 00:00:00
-- SELECT "2018-08-07 12:30:45" + interval  5 second;    # 2018-08-07 12:30:50  加5  秒
-- SELECT "2018-08-07 12:30:45" + interval  5 minute;    # 2018-08-07 12:35:45  加5分鐘
-- SELECT "2018-08-07 12:30:45" + interval  5 hour;      # 2018-08-07 17:30:45  加5小時
-- SELECT "2018-08-07 12:30:45" + interval  5 daY;       # 2018-08-12 12:30:45  加5  天
-- SELECT "2018-08-07 12:30:45" + interval  3 month;     # 2018-11-07 12:30:45  加3個月
-- SELECT "2018-08-07 12:30:45" + interval  2 year;      # 2020-08-07 12:30:45  加2  年

-- SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL 1 SECOND); # 1998-01-01 00:00:00
"""