unix_timestamp(MySQL)的数据类型是什么?

时间:2010-11-08 16:44:03

标签: sql mysql types

我应该使用哪种数据类型来保存 unix_timestamp 值(MySQL)?

4 个答案:

答案 0 :(得分:47)

类型是整数,如:

int(11) 

适用于索引和> < =

之类的条件

答案 1 :(得分:13)

您想使用TIMESTAMP data type 它存储为epoch值,但MySQL将值显示为'YYYY-MM-DD HH:MM:SS'。

答案 2 :(得分:1)

  

MySql DateTime 数据类型以'YYYY-MM-DD HH:MM:SS'格式存储日期,范围从'1000-01-01 00:00:00'到'9999- 12-31 23:59:59'。

     

MySql TIMESTAMP 数据类型以'YYYY-MM-DD HH:MM:SS'格式存储日期,范围从'1970-01-01 00:00:01'UTC到'2038 -01-19 03:14:07'UTC。

Unix时间戳是自1970-01-01起的秒数,如果要将unix时间戳存储在mysql db中,则应将int(11)与属性{ {1}}(仅允许正数),如果要保存微秒数,则应使用UNSIGNED,..

如果要在选择查询中以可读格式获取bigint(20) 您可以使用

unixtimestamp

如果您使用的是SELECT FROM_UNIXTIME(CAST(yourtable.start_time as UNSIGNED)) as date_time,则可以使用:

php

如果要使用 JavaScript 中的本地时区显示日期时间,请使用此功能

$unixtimestamp= time();//1544619186

echo(date("Y-m-d", $unixtimestamp));//2018-12-12

(在这种情况下,服务器应按原样返回unixTimestamp: function timeConverter(UNIX_timestamp){ var date = new Date(UNIX_timestamp*1000); var year = date.getFullYear(); var month = ("0"+(date.getMonth()+1)).substr(-2); var day = ("0"+date.getDate()).substr(-2); var hour = ("0"+date.getHours()).substr(-2); var minutes = ("0"+date.getMinutes()).substr(-2); var seconds = ("0"+date.getSeconds()).substr(-2); return year+"-"+month+"-"+day+" "+hour+":"+minutes+":"+seconds; } console.log(timeConverter(value));// 2018-14-12 13:11:33

答案 3 :(得分:-2)

BIGINT UNSIGNED NOT NULL

以秒为单位的纪元表示形式可以适合INT(11) 如果时间戳为毫秒,则INT(11)在MySQL中不起作用。