Какой тип данных следует использовать для сохранения unix_timestamp
(MySQL)?
Что такое тип данных для unix_timestamp (MySQL)?
Ответ 1
тип имеет целочисленное значение:
int(11)
хорош для индексирования и таких условий, как > < =
Ответ 2
Вы хотите использовать тип данных TIMESTAMP.
Он сохраняется как значение эпохи, но MySQL отображает значение как "ГГГГ-ММ-ДД ЧЧ: ММ: СС".
Ответ 3
Тип данных MySql DateTime хранит дату в формате "ГГГГ-ММ-ДД ЧЧ: ММ: СС" в диапазоне от "1000-01-01 00:00:00" до "9999-12-31 23:59:59".
Тип данных MySql TIMESTAMP хранит дату в формате "ГГГГ-ММ-ДД ЧЧ: ММ: СС" в диапазоне от "1970-01-01 00:00:01" UTC до "2038-01-19 03:14:07" УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ.
Unix TIMESTAMP - это количество секунд с 1970-01-01
, если вы хотите сохранить метку времени Unix в mysql
db, вам следует использовать int(11)
с атрибутом UNSIGNED
(чтобы разрешить только положительные числа), и если вы хотите сохранить количество микросекунд, которые вы должны использовать bigint(20)
,..
Если вы хотите получить unixtimestamp
в удобочитаемом формате в вашем запросе выбора, вы можете использовать
SELECT FROM_UNIXTIME(CAST(yourtable.start_time as UNSIGNED)) as date_time
Если вы используете php
вы можете использовать:
$unixtimestamp= time();//1544619186
echo(date("Y-m-d", $unixtimestamp));//2018-12-12
Если вы хотите отобразить дату и время с использованием локального часового пояса в Javascript, используйте эту функцию
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
(В этом случае сервер должен вернуть unixTimestamp как есть: SELECT yourtable.start_time as date_time
)