zoukankan      html  css  js  c++  java
  • Mysql(5)_ 基本数据类型-时间

     1 time,date 以及datetime


    CREATE TABLE t4(
      d date,
      t time,
      dt datetime
    );
    DESC t4;
    use test01;
    INSERT INTO t4 VALUES(NOW(),NOW(),NOW());
    show tables;
    SELECT * from t4;


    2  timestamp,Mysql只给表中的第一个timestamp字段默认值为当前时间,如果有第二个该类型的字段,默认值是0.

    CREATE TABLE t5(
     id1 timestamp
    );
    INSERT into t5 VALUES(null);

     


     timestamp和时区有关系,当插入日期时,会先转换为本地时区存放。从数据库读取出时,也要先转化为本地时区后显示。这样,两个不同时区的看到的同一个日期可能是不一样的。也就是说now实际时间是八点四十九分,但是时间戳实际上是东九区的,九点四十九分。如果还是以now()来理解就会有误差

    CREATE TABLE t6(
    id1 timestamp NOT NULL DEFAULT  CURRENT_TIMESTAMP,
    id2  datetime DEFAULT NULL
    );
    -- 查看当前时区
    show VARIABLES LIKE 'time_zone';
    SHOW VARIABLES LIKE '%log';
    INSERT INTO t6 (id2) VALUES(NOW());
    SELECT * from t6;
    -- 修改时区为东九区
    set time_zone='+9:00';

    DESC t5;
    SELECT * from t5;
     -- timestamo 开始时间
    INSERT INTO t5 VALUES(19700101080001);
    --  最晚时间,2038年,再插入09秒就会报错
    INSERT INTO t5 VALUES('2038-01-19 11:14:00');
    -- 早于开始时间插入会报错,之前的mysql版本不报错,默认是0
    insert INTO t5 VALUES(19700101080000);

     1     Datetime的范围更大。并且Datetime只能表示当地时区,其他时区的人看必然是有误差的

     2      TimeStamp的插入受时区和影响,更能反应出实际的日期

    CREATE TABLE t7(
     dt datetime
    );
    INSERT INTO t7 VALUES('2007-9-3 12:10:10');
    INSERT INTO t7 VALUES('2007/9/3 12+10+10');
    INSERT INTO t7 VALUES('20070903121010');
    SELECT * FROM t7;

  • 相关阅读:
    Win10 64bit 下 Oracle 11g的安装
    删除服务列表中的任意服务 services.msc
    centos7修改docker镜像源的方法
    Docker零基础
    CentOS 查看日志命令
    mac 修改默认python,pip,为python3,pip3
    多次调用摄像头,需要考虑渲染问题
    Ant Designer Vue 中 layout 样式类名丢失
    Windows10 右键假死卡住转圈。
    mac 安装yarn
  • 原文地址:https://www.cnblogs.com/sunnybowen/p/9919095.html
Copyright © 2011-2022 走看看