mysql时间戳

格式化MYSQL时间戳函数FROM_UNIXTIME

天涯浪子 提交于 2020-03-16 10:34:12
函数:FROM_UNIXTIME 作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。 语法: FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。 根据format字符串格式化date值。 下列修饰符可以被用在format字符串中: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数, 数字(00……31) %e 月份中的天数, 数字(0……31) %m 月, 数字(01……12) %c 月, 数字(1……12) %b 缩写的月份名字(Jan……Dec) %j 一年中的天数(001……366) %H 小时(00……23) %k 小时(0……23) %h 小时(01……12) %I 小时(01……12) %l 小时(1……12) %i 分钟, 数字(00……59) %r 时间,12 小时(hh:mm:ss [AP]M) %T 时间,24 小时(hh

格式化MYSQL时间戳函数FROM_UNIXTIME

和自甴很熟 提交于 2020-03-16 10:32:01
对MYSQL没有进行过深入的研究,基础知识匮乏,一遇到问题只能手册,看来要把MYSQL的学习安排进时间表了。 函数:FROM_UNIXTIME 作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。 语法: FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。 根据format字符串格式化date值。 下列修饰符可以被用在format字符串中: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数, 数字(00……31) %e 月份中的天数, 数字(0……31) %m 月, 数字(01……12) %c 月, 数字(1……12) %b 缩写的月份名字(Jan……Dec) %j 一年中的天数(001……366) %H 小时(00……23) %k 小时(0……23) %h 小时(01……12) %I 小时(01……12) %l 小时(1……12) %i 分钟

MySql 时间戳存char还是存int?

折月煮酒 提交于 2020-02-25 19:10:21
一次小事故,让我对时间戳存char还是存int有了深刻的印象。 生产环境的sql条件涉及到时间戳字段的大小比较(between and),当时设计的时间戳类型是char(10),结果当数据量达到200万时,虽然建立了索引,但仍旧瞬间崩溃。查询时间到达几十分钟。 多方调试无果下,将时间戳类型是char(10)改成int(10),瞬间秒开。查询速度控制在了 0.03秒以内。性能提升万倍。 来源: oschina 链接: https://my.oschina.net/u/3371661/blog/3156228

mysql中毫秒的保存类型

只愿长相守 提交于 2020-02-06 05:41:23
13位时间戳存储要么存为bigint,要么存为varchar(13)类型。不能使用int,因为“13位时间戳只能存bigint ,因为13位时间戳超出了int的范围”。 13位时间戳只能存bigint ,因为13位时间戳超出了int的范围。 注: https://blog.csdn.net/helloxiaozhe/article/details/83269152 来源: CSDN 作者: l_degege 链接: https://blog.csdn.net/l_degege/article/details/104187163

时间戳,这样用就对了

﹥>﹥吖頭↗ 提交于 2020-01-14 02:27:55
前言: 时间戳字段在MySQL中经常使用到,比如需要记录一行数据创建的时间或修改的时间时,我们通常会使用时间戳即timestamp字段。本篇文章主要介绍timestamp字段的使用方法及相关参数,希望大家读完能对timestamp有更深的认识。 1.TIMESTAMP字段类型简介 timestamp字段类型可存储时间类型数据,timestamp所能存储的时间范围为:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999',timestamp字段占用4个字节。在MySQL5.7版本,timestamp可以指定精度,即TIMESTAMP(fsp)中fsp可以指定一个介于0到6之间的可选值,以代表小数秒精度。值为0表示没有小数部分,如果省略,则默认精度为0。 下面我们来简单测试下: # timestamp可以指定精度 mysql> CREATE TABLE `stu_tb` ( -> `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', -> `stu_id` int(11) NOT NULL COMMENT '学号', -> `stu_name` varchar(20) DEFAULT NULL COMMENT '学生姓名', -> `create_time`

MySQL时间戳

廉价感情. 提交于 2020-01-12 19:36:25
一.基础时间函数(必知) 1.1 获得当前日期+时间(date + time)函数:now() 1.2 获得当前日期+时间(date + time)函数:sysdate() sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。 可以看到,虽然中途 sleep 3 秒,但 now() 函数两次的时间值是相同的; sysdate() 函数两次得到的时间值相差 3 秒。 2. 获得当前日期(date)函数:curdate() 3. 获得当前时间(time)函数:curtime() 4. 获得当前 UTC 日期时间函数:utc_date(), utc_time(), utc_timestamp() 二.MySQL 日期时间 Extract(选取) 函数。 选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒 MySQL Extract() 函数,可以上面实现类似的功能: . set @dt = ’2008-09-10 07:15:30.123456′; select extract(year from @dt); — 2008 select extract(quarter from @dt); — 3 select extract(month from @dt); — 9

SpringBoot时间戳与MySql数据库记录相差14小时排错

寵の児 提交于 2020-01-10 04:49:03
项目中遇到存储的时间戳与真实时间 相差14小时 的现象,以下为解决步骤. 问题 CREATE TABLE `incident` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `recovery_time` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4; 以上为数据库建表语句,其中 created_time 是插入记录时自动设置, recovery_time 需要手动进行设置. 测试时发现, created_time 为正确的北京时间,然而 recovery_time 则与设置时间相差14小时. 尝试措施 jvm时区设置 //设置jvm默认时间 System.setProperty("user.timezone", "UTC"); 数据库时区查询 查看数据库时区设置: show variables like '%time_zone%'; --- 查询结果如下所示: --- system_time_zone: CST --- time_zone:SYSTEM 查询 CST

springboot 时间戳和 数据库时间相差14个小时

怎甘沉沦 提交于 2019-12-31 16:26:24
在 springboot 开发过程中遇到一个奇怪的问题,就是已经设置系统时间GMT+8, 但是时间到数据库后会减少14个小时。后来发现是 jvm 时区和数据库时区设置不一致的问题。 jvm 设置的是 GMT+8,数据库是 CST 时区。CST 时区比较混乱,会在冬令时或夏令时导致相差 13 或 14 个小时,所以需要改成自己需要的。 spring 开发过程中时区设置 1 jvm 系统时区设置,在 application.yml 配置文件中 spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 2 在请求参数中,使用 JsonFormat 配置解析规则 import com.fasterxml.jackson.annotation.JsonFormat; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date birthday; 3 在数据库连接中设置时间的解析时区,该方法不需要 mysql 服务器设置时区然后重启了 jdbc:mysql://localhost:3306/table_name?useUnicode=true&characterEncoding=UTF-8&useSSL=false

php时间戳与时间

折月煮酒 提交于 2019-12-27 21:51:29
在php中完成 1. UNIX时间戳转换为日期用函数: date() 一般形式:date('Y-m-d H:i:s', 1156219870); 2. 日期转换为UNIX时间戳用函数:strtotime() 一般形式:strtotime('2010-03-24 08:15:42'); 一、在MySQL中完成    这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能用在数据库查询中,有局限性。 1. UNIX时间戳转换为日期用函数: FROM_UNIXTIME() 一般形式:select FROM_UNIXTIME(1156219870); 2. 日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP() 一般形式:Select UNIX_TIMESTAMP('2006-11-04 12:23:00′); 举例:mysql查询当天的记录数: $sql=”select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') order by id desc”; 当然大家也可以选择在PHP中进行转换,下面说说在PHP中转换。 mktime时间函数 int mktime ([ int $hour =

mysql TIMESTAMP(时间戳)详解——查询最近一段时间操作的记录

女生的网名这么多〃 提交于 2019-12-24 11:48:36
TIMESTAMP的变体 1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录和修改现有记录的时候都对这个数据列刷新 2,TIMESTAMP DEFAULT CURRENT_TIMESTAMP 在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它 3,TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录的时候把这个字段设置为0,以后修改时刷新它 4,TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT_TIMESTAMP 在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它 MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型下面就详细说明TIMESTAMP列类型 *TIMESTAMP列类型* TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。 TIMESTAMP值显示尺寸的格式如下表所示: : +---------------+----------------+ | 列类型    | 显示格式    | | TIMESTAMP(14) |