什么是Unix 时间戳
时间戳实际上是指能够证明某个数据在某个时间点之前已经存在、完整和可验证的数据,通常是一个字符序列。
Unix 时间戳(Unix timestamp),或称 Unix 时间(Unix time)、POSIX 时间(POSIX time),这是一种时间表达方式,定义为从1970年的格林威治时间 01 月 01 日 00 时 分 00 秒到现在的总秒。Unix 时间戳不仅用于 Unix 系统,类 Unix 系统也广泛应用于许多其他操作系统。
众所周知,在大多数计算机系统中,时间戳是指从格林尼治时间 1970年 01 01 00 时间 00 分 00 秒(北京时间 1970年 01 01 08 时间 00 分 00 秒)到现在的秒数。
时间戳是服务器添加到数据块中的时间标记。首先,在当前数据块的哈希值上发布时间戳,然后发布到网络中。这证明了该数据存在于识别的时间刻度下。
10位时间戳准确到秒13位时间戳将时间精确到毫秒,因此两者的关系是1000倍
1.将字符串的时间类型转换为10个时间戳
select FLOOR(unix_timestamp(create_time)) from page;
eg:select FLOOR(UNIX_TIMESTAMP from `boc_circle` #结果为1593446400 /*-08-31? ?1598803200? ?-07-01 1593532800? ?-09-01 1598889600? -06-30 1593446400*/
create_time为字段名,page为表名
2.13位时间戳转换为日期类型
Select FROM_UNIXTIME(round(time_ms from page ;
time_ms为字段名,page为表名
3.10位时间戳转换为日期类型
Select FROM_UNIXTIME(time_ms) from page ;
select FROM_UNIXTIME(time_ms,format) from page ; #
将MYSQL中以INT(11)存储时间"YYYY-MM-DD"显示格式。time_ms为字段名 page为表名 format格式
time_ms为字段名,page为表名
select FROM_UNIXTIME(1593532800) from `boc_circle_post` #-07-01 00:00 <=>select FROM_UNIXTIME(1593532800,\%Y-%m-%d %H:%i:%S)from `boc_circle_post` #-07-01 00:00
select FROM_UNIXTIME(1593532800,\%Y-%m-%d)from `boc_circle_post` #结果为-07-01 PS:以下修饰符可用于下列修饰符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:mm:ss)%S 秒(00……59)%s 秒(00……59)%p AM或PM%w 一周中的天数(0=Sunday ……6=Saturday )%U 星期(0……52),星期天是星期的第一天u 星期(0……52),这里的星期一是星期的第一天% 一个词%