一、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的驅動,...