我应该使用哪种数据类型来保存 unix_timestamp
值(MySQL)?
答案 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中不起作用。