首页
学习
活动
专区
圈层
工具
发布

MySQL 时间类型 DATE、DATETIME和TIMESTAMP

1.DATE、DATETIME和TIMESTAMP 表达的时间范围 Type Range Remark DATE '1000-01-01' to '9999-12-31' 只有日期部分,没有时间部分 DATETIME...'1000-01-01 00:00:00' to '9999-12-31 23:59:59' 时间格式为 YYYY-MM-DD hh:mm:ss,默认精确到秒 TIMESTAMP '1970-01-01...00:00:01' UTC to '2038-01-19 03:14:07'UTC 默认精确到秒 2.DATETIME和TIMESTAMP 最大时间精确度 5.7 之后的版本(其实应该说5.6.5)...查询命令 show variables like '%time_zone%'; 上述“CST”指的是MySQL所在主机的系统时间,是中国标准时间的缩写,China Standard Time UT...TIMESTAMP(fraction)中fraction值显示尺寸的格式如下表所示: 列类型 显示格式 TIMESTAMP(14) YYYYMMDDHHMMSS TIMESTAMP(12) YYMMDDHHMMSS

4.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MYSQL 数据库时间字段 INT,TIMESTAMP,DATETIME 性能效率比较

    原文 | http://1t.click/FAB 在数据库设计的时候,我们经常会需要设计时间字段,在 MYSQL 中,时间字段可以使用 int、timestamp、datetime 三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高...)<600000 查询花费 0.9994 秒 对于 datetime 类型,同样有了索引,反倒不建议使用 MYSQL 内置函数UNIX_TIMESTAMP 查询了。...直接和时间比较)> UNIXTIMESTAMP(datetime) 。...对于 InnoDB 引擎,没有索引的情况下(不建议),效率从高到低:int > UNIXTIMESTAMP(timestamp) > datetime(直接和时间比较) > timestamp(直接和时间比较...对于 InnoDB 引擎,建立索引的情况下,效率从高到低:int > datetime(直接和时间比较) > timestamp(直接和时间比较)> UNIXTIMESTAMP(timestamp) >

    8.4K30

    mysql中Timestamp,time,datetime 时间区别

    TIMESTAMP[(M)]时间戳。 时间范围:1970-01-01 00:00:00——2037年。 适用场景:TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。...表现形式:TIMESTAMP值返回后显示为’YYYY-MM-DD HH:MM:SS’格式的字符串 扩展: 如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。...TIME 时间范围:是’-838:59:59’——’838:59:59’。 表现形式:’HH:MM:SS’格式显示TIME值,但允许使用字符串或数字为TIME列分配值。...DATETIME 日期和时间的组合。 时间范围:’1000-01-01 00:00:00’到’9999-12-31 23:59:59’。...表达式:’YYYY-MM-DD HH:MM:SS’格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。

    2.6K20

    python datetime模块用strftime 格式化时间

    usr/bin/python import datetime datetime.datetime.now() 这个会返回 microsecond。因此这个是我们不需要的。...所以得做一下修改 1 datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 格式化之后,就得到了我们常见的格式了。...附:strftime参数 strftime(format[, tuple]) -> string 将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出 python中时间日期格式化符号...小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示...的等价符 %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示

    1.1K10

    mysql数据库时间类型datetime、bigint、timestamp的查询效率比较

    作者 | 哒波甜 来源 | https://juejin.cn/post/6844903701094596615 数据库中可以用datetime、bigint、timestamp来表示时间,那么选择什么类型来存储时间比较合适呢...前期数据准备 通过程序往数据库插入50w数据 数据表: CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `time_date...ENGINE=InnoDB AUTO_INCREMENT=500003 DEFAULT CHARSET=latin1 其中time_long、time_timestamp、time_date为同一时间的不同存储格式...,性能bigint > datetime > timestamp sql分组速率测试 使用bigint 进行分组会每条数据进行一个分组,如果将bigint做一个转化在去分组就没有比较的意义了,转化也是需要时间的...,性能bigint > timestamp > datetime 小结 如果需要对时间字段进行操作(如通过时间范围查找或者排序等),推荐使用bigint,如果时间字段不需要进行任何操作,推荐使用timestamp

    3.8K30

    MySQL 时间类型 datetime、bigint、timestamp,选哪个?

    数据库中可以用datetime、bigint、timestamp来表示时间,那么选择什么类型来存储时间比较合适呢?...前期数据准备 通过程序往数据库插入50w数据 数据表: CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `time_date...ENGINE=InnoDB AUTO_INCREMENT=500003 DEFAULT CHARSET=latin1 其中time_long、time_timestamp、time_date为同一时间的不同存储格式...,性能bigint > datetime > timestamp sql分组速率测试 使用bigint 进行分组会每条数据进行一个分组,如果将bigint做一个转化在去分组就没有比较的意义了,转化也是需要时间的...,性能bigint > timestamp > datetime 小结 如果需要对时间字段进行操作(如通过时间范围查找或者排序等),推荐使用bigint,如果时间字段不需要进行任何操作,推荐使用timestamp

    4.9K30

    C#关于DateTime得到的当前时间的格式问题

    C#中把DateTime获取到不同格式的时间转换为固定的时间格式:     C#中有严格的大小写限定     yyyy-MM-dd hh:mm:ss      两者之间是有区别的:     yyyy:代表年份...    MM:  代表月份     dd:   代表天     HH:   代表小时(24小时制)     mm:  代表分钟     ss:    代表秒     DateTime dt1 =Convert.ToDateTime...("2010-06-15");     DateTime dt2= Convert.ToDateTime("2010-05-10");     (1)计算两个日期的差值:         TimeSpan...        int day=span.days;     (2)给日期增加一天、减少一天         dt1.AddDays(10);         dt2.AddDays(-10);      (3)格式化日期...:         stirng date=DateTime.Now.Tostring("yyyy-MM-dd hh:mm:ss");

    2.7K30

    MySQL datetime 时间字段的四舍五入

    前言 如果不是踩到坑,我估计到现在还不知道时间字段会四舍五入。 1 背景 通过 Java 代码获取当日最大时间,然后存入数据库,数据库表字段格式 datetime 保留 0 位。...到数据库一看,好家伙,竟然存了第二天的时间。 看着样子是四舍五入了!...2 模拟测试 执行之后,看一下日志: 使用的是 2021-09-28T23:59:59.999999999,但是很奇怪的是数据库存储的是 2021-09-29 00:00:00。...docker pull mariadb docker run -d --name mariadb -p 33306:33306 -e "MYSQL_ROOT_PASSWORD=root" mariadb...3 结论 MySQL 时间如果传入的值超过精度范围,会进行四舍五入。 MariaDB 时间如果传入的值超过精度范围,会直接舍弃。 踩了个小坑。最后还是硬编码吧!

    2.5K20

    带毫秒的字符转换成时间(DateTime)格式的通用方法

    C#自身有更好的方式,Net任意String格式转换为DateTime类型 ====================================================== 原文 ====...============================================ 好久没更新日志了,添加个方法吧,本身没有什么技术可言,为了能方便大家,我稍微整理一下咯~ 带毫秒的字符转换成时间...(DateTime)格式通用方法,如下:(支持格式:2014-10-10 10:10:10,666 或 2014-10-10 10:10:10 666) /// /// 带毫秒的字符转换成时间...(DateTime)格式 /// 可处理格式:[2014-10-10 10:10:10,666 或 2014-10-10 10:10:10 666] /// public DateTime...GetDateTime(string dateTime) { string[] strArr = dateTime.Split(new char[] { '-', ' ', ':', ','

    2K60
    领券