Mysql日期常用語句

Ruma_z發表於2020-08-22

資料型別

  1. datetime
  2. timestamp

語句測試

  1. 建表

    DROP TABLE IF EXISTS test_time;
    CREATE TABLE test_time (
     `id` INT (3) UNSIGNED AUTO_INCREMENT,
     `name` char(5) DEFAULT '',  //用於更新時間測試
     `test_datetime` datetime DEFAULT CURRENT_TIMESTAMP,
     `test_datetime1` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
     `test_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
     `test_timestamp1` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
     `int_timestamp` INT NOT NULL DEFAULT 1577808000,
     PRIMARY KEY (`id`)
    );
  2. 插入資料

    INSERT into test_time(name) VALUE('huang');

    因為建表時已經使用了 DEFAULT CURRENT_TIMESTAMP 所以插入資料後會自動建立當前時間

    UPDATE test_time set name='hui' WHERE name='huang';

    測試test_datetime1,test_timestamp1的自動更新時間功能;

  1. 常見函式測試SQL
    SELECT 
    test_datetime,
     DATE_FORMAT(test_datetime,'%Y-%m-%d'),
     FROM_UNIXTIME(int_timestamp) as int_day,
     YEAR(test_datetime) as year,
     MONTH(test_datetime) as month,
     DAY(test_datetime) as day,
     HOUR(test_datetime) as hour,
     minute(test_datetime) as minute,
     second(test_datetime) as second,
     MICROSECOND(test_datetime) as mic_second,
     WEEK(test_datetime) as week,
     QUARTER(test_datetime) as quarter,
     MONTHNAME(test_datetime) as month_name,
     NOW() as now,
     CURRENT_date() as cur_date,
     CURRENT_TIME() as cur_time,
     DATE_ADD(NOW(),INTERVAL 1 DAY) as add_day,
     DATE_SUB(NOW(),INTERVAL -1 DAY) as sub_day,
     DATEDIFF(NOW(),FROM_UNIXTIME(int_timestamp)) as diff
    FROM test_time;
  1. 函式解釋
函式 引數型別 說明
FROM_UNIXTIME timestamp 時間戳 –> 日期格式
UNIX_TIMESTAMP datetime 日期格式 –> 時間戳
DATE_FORMAT (datetime , ‘%Y-%m-%d,%H:%i:%s’) 美化日期格式
YEAR datetime 獲取日期格式的
MONTH datetime 獲取日期格式的月份
DAY datetime 獲取日期格式的日期
HOUR datetime 獲取日期格式的小時
MINUTE datetime 獲取日期格式的分鐘
SECOND datetime 獲取日期格式的
MICROSECOND datetime 獲取日期格式的微秒
WEEK datetime 獲取日期格式的第幾周
QUARTER datetime 獲取日期格式的季度
MONTHNAME datetime 獲取日期格式的月份(英文)
NOW 獲取當前時間2020-12-12 12:12:12
CURRENT_DATE 獲取當前日期2020-12-12
CURRENT_TIME 獲取當前時分秒12:12:12
DATE_ADD (datetime,INTERVAL expr unit) 增加n天 例:DATE_ADD(timestamp,INTERVAL 1 DAY)
DATE_SUB (datetime,INTERVAL expr unit) 減少n天
DATEDIFF (datetime1,datetime2) 兩個時間間隔多少天

-上述DATE_ADD/DATE_SUB中unit的引數可為:

毫秒 季度
YEAR MONTH DAY HOUR MINTUE SECOND MIROSECOND WEEK QUATER
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章