首頁  >  文章  >  資料庫  >  mysql可以做日期處理嗎

mysql可以做日期處理嗎

青灯夜游
青灯夜游原創
2020-10-07 12:40:242547瀏覽

mysql可以做日期處理;它可以利用CURDATE()、NOW()、YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()等內建函數來做日期處理,例「SELECT  CURDATE()」取得目前日期。

mysql可以做日期處理嗎

最近一個項目,需要寫很多的sql語句。牽涉到很多與時間相關的處理,現在做一下簡單的總結。

1.時間格式:在這個專案中,或許是由不同的人建立的資料庫表結構吧,對時間的格式步統一,有的表中儲存的long類型的時間戳,有的表中是儲存的日期,有的表中儲存的是時間,同時格式有20171225,2017-12-25等,一點都不統一。這樣做,會對專案增加一些額外的工作量,同時會衍生出一些問題出來。例如,在寫後台程式碼時,需要對時間做出處理,以適應資料庫的時間格式;在進行奪標聯合查詢時,時間格式不統一,又會對sql語句進行時間格式轉換,造成sql語句臃腫的情況。所以,在同一個項目中,時間格式應該要保持統一。個人覺得long 類型的時間戳,以及String類型的yyyy-MM-dd HH:mm:ss 這兩種方式時比較不錯的。

long類型的時間戳,是因為後台java程式碼將date類型的時間轉換為時間戳很容易。

String類型時因為,我們假如經常使用時間這個字段,在應用時不需要額外將Date類型轉換為String類型,使用起來比較直觀,方便。

2.常用時間語句

SELECT  CURDATE():2020-10-7  //此时日期
SELECT  NOW() : 2020-10-7 22:20:21  //此刻时间
SELECT  YEAR('2020-10-7 22:27:45'): 2020 //获取时间的年份
SELECT  MONTH('2020-10-7 22:27:45'): 10 //获取时间的月份
SELECT  DAY('2020-10-7 22:27:45'):25  //获取时间的天数
SELECT  HOUR('2020-10-7 22:27:45'):22  //获取时间的小时
SELECT  MINUTE('2020-10-7 22:27:45'):27  //获取时间的分钟
SELECT  SECOND('2020-10-7 22:27:45'):45  //获取时间的秒数
SELECT  DATE_SUB(NOW(),INTERVAL   1   YEAR)  //在目前的时间减去一年,该语句可以进行多种操作,指定时间下减去x年:DATE_SUB("2017-12-25",INTERVAL x YEAR),同时可以减去 x month/day/hour/minute/second等
SELECT  DATE_ADD(NOW(),INTERVAL 1 YEAR)  //同上,在目前的时间上加上一年
SELECT  CONCAT('2017','-12-12'):2017-12-12  //组装字符串,可以组装成任何时间格式,也可以使用如上语句,例如:SELECT CONCAT(YEAR(NOW()),'-12-12') :2017-12-12 ;
SELECT UNIX_TIMESTAMP('2017-12-25'):1514131200  //字符串转换成时间戳
SELECT FROM_UNIXTIME(1514131200) :2017-12-25 00:00:00  //时间戳转化为时间
SELECT DATE_FORMAT('2017-12-25 22:23:01', '%Y-%m-%d %H:%i:%s');   //字符串转化为时间格式(date),也可以时间格式转化为字符串格式

以上就是在mysql中比較常用的一些時間相關的語句。

推薦教學:mysql影片教學

#

以上是mysql可以做日期處理嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn