mysql 兩天前 函式 Mysql 日期函式

2021-10-20 22:39:18 字數 4460 閱讀 2167

一、mysql 獲得當前日期時間 函式

1.獲取當前日期+時間(date + time):

now()

sysdate()

sysdate()和now()的區別在於sysdate() 在函式執行時動態得到值, now() 在執行開始時值就得到了,看下面的例子就明白了:

mysql> select sysdate(),sleep(3),sysdate();

| sysdate()           | sleep(3) | sysdate()           |

| 2013-12-30 16:12:36 |        0 | 2013-12-30 16:12:39 |

1 row in set (3.03 sec)

mysql> select now(),sleep(3),now();

| now()               | sleep(3) | now()               |

| 2013-12-30 16:12:51 |        0 | 2013-12-30 16:12:51 |

1 row in set (3.00 sec)

由結果可知,sysdate() 函式兩次得到的時間值相差 3 秒,而now() 函式兩次的時間值是相同的。

2.獲取當前日期:

curdate()

還有兩個相同作用函式currtme_date()和current_date

curtime()

還有兩個相同作用函式current_time()和current_time

4.獲取當前 utc 日期時間函式:

utc_date()

utc_time()

utc_timestamp()

二.日期時間 extract(選取)函式

year(date)             #返回date的年份,範圍是1000到9999

month(date)         #返回date的月份,範圍是1到12

day(date)              #返回date的日期,範圍是1到31

hour(time)            #返回date的小時,範圍是0到23

minute(time)        #返回date的分鐘,範圍是0到59

second(time)       #返回date的秒鐘,範圍是0到59

quarter(date)       #返回date所屬的季度,範圍是1到4

week(date,[0/1])             #返回date為一年當中的第幾周,預設從0開始計數,範圍是0-52 ; 如果帶引數1,則表示從1開始計數,範圍是1-53

weekofyear(date)      #返回date為年度當中的第幾周(自然週數),範圍是1-52,如果12月最後幾天和1.1在同一周,則該週內都返回值 1

yearweek(date)           #返回date為年度當中的year+第幾周,周範圍是01-52,如果12月最後幾天和1.1在同一周,則該週內都周值都為 52,

weekday(date)             #返回date為所在星期的第幾天,範圍是0-6(0=星期1...6=星期天)

dayofweek(date)        #返回date為所在星期的第幾天,範圍是1-7(1=星期天...7=星期六)

dayofmonth(date)     #返回date為所在月份的第幾天,範圍1-31

dayofyear(date)         #返回date為所在年份的第幾天,範圍1-366

dayname(date)             #返回date的星期名稱monday...

monthname(date)      #返回date的月份名稱january...

last_day(date)           #返回date所在月份的最後一天

三.日期計算函式

1.為日期增加乙個時間間隔

date_add(date,interval expr type)

type值可以為year、month、day、week、quarter、hour、minute、second、microsecond、second_microsecond、minute_microsecond、minute_second、hour_microsecond、hour_second、hour_minute、day_microsecond、day_second、day_minute、day_hour、year_month

例:select  date_add(now(),interval 10 day);

2.為日期減去乙個時間間隔

date_sub(date,interval expr type)

type值同date_add函式一要

例:select  date_sub(now(),interval 1 week);

timediff(date1,date2)              #返回time1-time2相差的時間,返回格式為hh:mm:ss

timestampdiff( type,date1,date2)

#返回date2-date1相差的指定unit,返回格式是數值型,type可以是:frac_second (microseconds), second, minute, hour, day, week, month, quarter, or year。

四.日期、時間格式轉換函式

1.日期時間轉字元:

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) (大寫 i)

%l小時(1……12)   (小寫l)

%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), 這裡星期一是星期的第一天

%% 乙個文字「%」。

例:select date_format(now(),'%y%m%d');                # 20131230

2.字串轉換為日期函式:

str_to_date(str, format)

format值同上

例:select str_to_date('10/15/2013', '%m/%d/%y');           # 2013-10-15

select str_to_date('20131015170201', '%y%m%d %h%i%s');           #2013-10-15 17:02:01

3.(時間、秒)轉換函式:

select time_to_sec('00:02:10');      #  130

select sec_to_time(100);                # 00:01:40

4.(日期、天數)轉換函式:

select to_days('0000-01-01');          # 1

select to_days(now());                    # 735597

select from_days(366);                   # 0001-01-01

select from_days(735550);            #2013-11-13

5.獲取國家地區時間格式函式: get_format(date|time|datetime, 'eur'|'usa'|'jis'|'iso'|'internal') 例: select get_format(date,'usa') ;               # '%m.%d.%y' select get_format(datetime,'usa') ;       # '%y-%m-%d %h.%i.%s' select get_format(time,'internal') ;        # '%h%i%s'

兩天的總結

昨天實在是太累了,晚上一回來倒頭就睡,也沒看幾點,反正是9點之前 有史以來最早睡的一次 然後就沒有寫日誌了 今天補做。其實,這兩天的生活大致相同,大半天時間都是在寶山網球館,隨著比賽的進行,越來越多的選手被淘汰,比賽也越顯精彩許多,屢屢出現那種連續搶七的三盤大戰,雖然讓觀眾一飽眼福但卻是苦了我們當球...

鬱悶的兩天

這兩天真的有些鬱悶,寫太多技術文章了,沒有那種文學氣息拉,再也不能從立體的方向營造那種鬱悶的氣氛拉。只能列表說說這兩天的鬱悶事情啦。球球走了 這個是很令我傷心的事情。球球雖然不是只漂亮的狗,可是很機靈很可愛。前兩天可能因為吃了些不太好的東西吧,球球老師嘔吐,也不怎麼吃飯,後來打了兩天吊針,慢慢的好了...

最近這兩天

最近這個兩天一直在和愛機作鬥爭,幸好都是人民內部矛盾,還沒有到不可調和的地步。其實怪我,想法太多 又想raid,又想server2008,見異思遷,三心二意,當然會讓愛機對我有意見。server 2008認得很順,格式化,拷貝檔案,安裝成功!然後當然是驅動了。server2008用vista的驅動,...