程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MYSQL時間函數及運算

MYSQL時間函數及運算

編輯:關於MYSQL數據庫
當前時間
  • NOW()
  • SYSDATE()
  • CURRENT_DATE 以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值,取決於函數是在一個字符串還是數字上下文被使用。
    •    MySQL> select CURDATE(); -> '1997-12-15'
    •    MySQL> select CURDATE() + 0; -> 19971215
  • CURRENT_TIME 以'HH:MM:SS'或HHMMSS格式返回當前時間值,取決於函數是在一個字符串還是在數字的上下文被使用。
    •    MySQL> select CURTIME(); -> '23:50:26'
    •    MySQL> select CURTIME() + 0; -> 235026
  • CURRENT_TIMESTAMP 以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回當前的日期和時間,取決於函數是在一個字符串還是在數字的上下文被使用。
    •    MySQL> select NOW();-> '1997-12-15 23:50:26'
    •    MySQL> select NOW() + 0; -> 19971215235026
   時間格式
  • DATE_FORMAT(date,format) 根據format字符串格式化date值。
  • TIME_FORMAT(time,format) 根據format字符串格式化time值。format字符串只能包含處理小時、分鐘和秒的那些格式修飾符。其他修飾符產生一個NULL值或0。
    •   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'
    • 下列修飾符可以被用在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), 這裡星期一是星期的第一天
      •   %% 一個文字“%”。
    DAY
    • TO_DAYS(date) 給出一個日期date,返回一個天數(從0年的天數)。
      •    MySQL> select TO_DAYS('1997-10-07'); -> 729669
    • FROM_DAYS(N) 給出一個天數N,返回一個DATE值。
      •    MySQL> select FROM_DAYS(729669); -> '1997-10-07'
    • DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。這些索引值對應於ODBC標准。
    • WEEKDAY(date) 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
    • DAYOFMONTH(date) 返回date的月份中日期,在1到31范圍內。
    • DAYOFYEAR(date) 返回date在一年中的日數, 在1到366范圍內。
    • MONTH(date) 返回date的月份,范圍1到12。
    • DAYNAME(date) 返回date的星期名字。
    • MONTHNAME(date) 返回date的月份名字。
    • QUARTER(date) 返回date一年中的季度,范圍1到4。
    • WEEK(date),WEEK(date,first) 對於星期天是一周的第一天的地方,有一個單個參數,返回date的周數,范圍在0到52。2個參數形式WEEK()允許你指定星期是否開始於星期天或星期一。如果第二個參數是0,星期從星期天開始,如果第二個參數是1,從星期一開始。
    • YEAR(date) 返回date的年份,范圍在1000到9999。
    • HOUR(time) 返回time的小時,范圍是0到23。
    • MINUTE(time) 返回time的分鐘,范圍是0到59。
    • SECOND(time) 回來time的秒數,范圍是0到59。
    SECOND
    • SEC_TO_TIME(seconds) 返回seconds參數,變換成小時、分鐘和秒,值以'HH:MM:SS'或HHMMSS格式化,取決於函數是在一個字符串還是在數字上下文中被使用。
      •    MySQL> select SEC_TO_TIME(2378);-> '00:39:38'
      •    MySQL> select SEC_TO_TIME(2378) + 0;-> 3938
    • TIME_TO_SEC(time) 返回time參數,轉換成秒。
      •    MySQL> select TIME_TO_SEC('22:23:00');-> 80580
    TIMESTAMP 
    • UNIX_TIMESTAMP(date) 如果沒有參數調用,返回一個Unix時間戳記(從'1970-01-01 00:00:00'GMT開始的秒數)。如果UNIX_TIMESTAMP()用一個date參數被調用,它返回從'1970-01-01 00:00:00' GMT開始的秒數值。date可以是一個DATE字符串、一個DATETIME字符串、一個TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地時間的一個數字。
      •    MySQL> select UNIX_TIMESTAMP('1997-10-04 22:23:00'); -> 875996580
       *當UNIX_TIMESTAMP被用於一個TIMESTAMP列,函數將直接接受值,沒有隱含的“string-to-unix- timestamp”變換。
    • FROM_UNIXTIME(unix_timestamp) 以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp參數所表示的值,取決於函數是在一個字符串還是或數字上下文中被使用。
      •    MySQL> select FROM_UNIXTIME(875996580); -> '1997-10-04 22:23:00'
      •    MySQL> select FROM_UNIXTIME(875996580) + 0; -> 19971004222300
    • FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 時間標記的一個字符串,根據format字符串格式化。format可以包含與DATE_FORMAT()函數列出的條目同樣的修飾符。
      •    MySQL> select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x'); 
      •    -> '1997 23rd December 03:43:30 x'

    更新時間語句:在原來的時間上加20分鐘

    UPDATE anpai SET tttime=FROM_UNIXTIME(UNIX_TIMESTAMP(endtime)+60*20,'%Y-%m-%d %H:%i:%s');

    原來的格式為日期和時間單獨記錄,現在要求統一加8小時(時差)。

    UPDATE gps_cell SET GPSDate=FROM_UNIXTIME(UNIX_TIMESTAMP(CONCAT_WS(' ',GPSDate,GPSTime))+3600*8,'%Y-%m-%d'),GPSTime=FROM_UNIXTIME(UNIX_TIMESTAMP(CONCAT_WS(' ',GPSDate,GPSTime))+3600*8,'%H:%i:%s');

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved