mysql日期函式

2021-08-01 12:43:32 字數 4216 閱讀 9190

基本的mysql日期函式:

--

用日期與字串轉換,計算當月第一天、下月第一天

select curdate() as

'當前日期',

date_format(curdate(),

'%y-%m

') as

'當前月份',

str_to_date(concat(date_format(curdate(),

'%y-%m

'), '

-01'), '

%y-%m-%d

') as

'當前月的第一天',

date_add(str_to_date(concat(date_format(curdate(),

'%y-%m

'), '

-01'), '

%y-%m-%d

'), interval1month) as

'下月的第一天';

--當前月的最後一天

select

last_day(curdate());

--下月第一天

select date_add(last_day(curdate()), interval1day

);--

當天為當月的第幾天

select

day(curdate());

--當月第一天

select date_add(curdate(), interval1-(day(curdate())) day);

mysql中計算兩個日期的時間差函式timestampdiff用法: 

語法: 

timestampdiff(interval,datetime_expr1,datetime_expr2) 

說明: 

返回日期或日期時間表示式datetime_expr1 和datetime_expr2the 之間的整數差。其結果的單位由interval 引數給出。interval 的法定值同timestampadd()函式說明中所列出的相同。 

mysql> select timestampdiff(month,'2009-12-01','2009-09-01'); 

-> -3 

mysql> select timestampdiff(year,'2009-05-01','2008-01-01'); 

-> -1

精確到秒差

select timestampdiff(second,date_format(now(),'%y-%m-%d %h:%i:%s'),'2013-03-07 15:43:00') 

from dual

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 

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  

to_days(date)  

給出乙個日期date,返回乙個天數(從0年的天數)。  

mysql> select to_days(950501);  

-> 728779  

mysql> select to_days('1997-10-07');  

-> 729669  

to_days()不打算用於使用格列高里歷(1582)出現前的值。  

from_days(n)  

給出乙個天數n,返回乙個date值。  

mysql> select from_days(729669);  

-> '1997-10-07'  

date_format(date,format)  

根據format字串格式化date值。下列修飾符可以被用在format字串中: %m 月名字(january……december)  

%w 星期名字(sunday……saturday)  

%d 有英語字首的月份的日期(1st, 2nd, 3rd, 等等。)  

%y 年, 數字, 4 位  

%y 年, 數字, 2 位  

%a 縮寫的星期名字(sun……sat)  

%d 月份中的天數, 數字(00……31)  

%e 月份中的天數, 數字(0……31)  

%m 月, 數字(01……12)  

%c 月, 數字(1……12)  

%b 縮寫的月份名字(jan……dec)  

%j 一年中的天數(001……366)  

%h 小時(00……23)  

%k 小時(0……23)  

%h 小時(01……12)  

%i 小時(01……12)  

%l 小時(1……12)  

%i 分鐘, 數字(00……59)  

%r 時間,12 小時(hh:mm:ss [ap]m)  

%t 時間,24 小時(hh:mm:ss)  

%s 秒(00……59)  

%s 秒(00……59)  

%p am或pm  

%w 乙個星期中的天數(0=sunday ……6=saturday )  

%u 星期(0……52), 這裡星期天是星期的第一天  

%u 星期(0……52), 這裡星期一是星期的第一天  

%% 乙個文字「%」。 

mysql> select date_format('1997-10-04 22:23:00', '%w %m %y');  

-> 'saturday october 1997'  

mysql> select date_format('1997-10-04 22:23:00', '%h:%i:%s');  

-> '22:23:00'  

mysql> select date_format('1997-10-04 22:23:00',  

'%d %y %a %d %m %b %j');  

-> '4th 97 sat 04 10 oct 277'  

mysql> select date_format('1997-10-04 22:23:00',  

'%h %k %i %r %t %s %w');  

-> '22 22 10 10:23:00 pm 22:23:00 00 6'  

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...