zoukankan      html  css  js  c++  java
  • MySQL 日期类型及默认设置 (除timestamp类型外,系统不支持其它时间类型字段设置默认值)

    MySQL 日期类型及默认设置

    之前在用 MySQL 新建 table,创建日期类型列时遇到了一些问题,现在整理下来以供参考。

    MySQL 的日期类型如何设置当前时间为其默认值?
    答:请使用 timestamp 类型,且 默认值设为 now() 或 current_timestamp() 。



    日期类型区别及用途

    MySQL 的日期类型有5个,分别是: date、time、year、datetime、timestamp。
    将在“菜鸟教程”和百度获取的资料,整理成如下表格:

    类型字节格式用途是否支持设置系统默认值
    date 3 YYYY-MM-DD 日期值 不支持
    time 3 HH:MM:SS 时间值或持续时间 不支持
    year 1 YYYY 年份 不支持
    datetime 8 YYYY-MM-DD HH:MM:SS 日期和时间混合值 不支持
    timestamp 4 YYYYMMDD HHMMSS 混合日期和时间,可作时间戳 支持

    日期类型的 default 设置

    关于 default 设置,通常情况下会使用当前时间作为默认值。
    Example:

    ts_time timestamp NOT NULL DEFAULT NOW();
    • 1

    or

    ts_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP();
    • 1

    根据上表可知,除了 timestamp 类型支持系统默认值设置,其他类型都不支持。
    如果建表语句中有:

    ts_time1 time NOT NULL DEFAULT NOW();
    ts_time3 yearNOT NULL DEFAULT NOW();
    ts_time2 date NOT NULL DEFAULT CURRENT_TIMESTAMP();
    ts_time2 datetime NOT NULL DEFAULT CURRENT_TIMESTAMP();
    • 1
    • 2
    • 3
    • 4

    都会报错。所以想要设置某个日期列的默认值为当前时间,只能使用 timestamp 类型,并设置 DEFAULT NOW() 或 DEFAULT CURRENT_TIMESTAMP() 作为默认值。

    date 类型默认值使用 current_date() 创建失败

    date 创建失败

    date 类型默认值使用 now() 创建失败

     date 创建失败2

    date 类型默认值使用 current_timestamp() 创建失败

     date 创建失败3

    datetime 类型默认值使用 current_timestamp() 创建失败

    datetime 创建失败1

    datetime 类型默认值使用 now() 创建失败

    datetime 创建失败2

    timestamp 类型默认值使用 now() 创建成功

    timestamp

    常见的日期获取函数

    MySQL中有一些日期函数可供我们使用,我们可以使用 ” select 函数名() ; ” 的 sql 查看它们的返回值。同时也可以使用 “select 自定义函数名();”,调用我们自己定义的函数。
    Eample:

    select current_timestamp();
    • 1

    MySQL当前时间戳

    select current_date();
    • 1

    MySQL当前日期

    select current_time();
    • 1

    当前时间

    select now();
    • 1

    获取当前时间

    参照“w3School相关内容”,其他常见的日期函数如下

    函数描述
    NOW() 返回当前的日期和时间
    CURDATE() 返回当前的日期
    CURTIME() 返回当前的时间
    DATE() 提取日期或日期/时间表达式的日期部分
    EXTRACT() 返回日期/时间按的单独部分
    DATE_ADD() 给日期添加指定的时间间隔
    DATE_SUB() 从日期减去指定的时间间隔
    DATEDIFF() 返回两个日期之间的天数
    DATE_FORMAT() 用不同的格式显示日期/时间

    其他的内容

    更多的MySQL Date 类型或 Date 处理函数,请移步:
    MySQL 数据类型 – 菜鸟教程网
    SQL Date 函数 – W3School
    MySQL日期时间函数大全 – zeroone

  • 相关阅读:
    利用window.onerror收集js代码异常
    js 基础题复习
    正则12和\1的理解
    CodeReview 方法 规范
    前端的登陆 几种类型
    http协议相关知识
    javascript中apply、call和bind的区别 详细易懂
    http常见的状态码,400,401,403 前端看
    vue中使用file-saver 下载各类文件
    js下载文件到本地各种方法总结
  • 原文地址:https://www.cnblogs.com/caicaizi/p/7813518.html
Copyright © 2011-2022 走看看