web-dev-qa-db-fra.com

Quel est le type de données pour unix_timestamp (MySQL)?

Quel type de données dois-je utiliser pour enregistrer unix_timestamp valeur (MySQL)?

44
jzarsuelo

le type est entier comme:

int(11) 

est bon pour l'indexation et des conditions comme > < =

55
Haim Evgi

Vous souhaitez utiliser le type de données TIMESTAMP .
Il est stocké en tant que valeur Epoch, mais MySQL affiche la valeur comme 'AAAA-MM-JJ HH: MM: SS'.

14
OMG Ponies

MySql DateTime le type de données stocke la date au format 'AAAA-MM-JJ HH: MM: SS' avec une plage de '1000-01-01 00:00:00' à '9999-12-31 23:59:59 '.

MySql TIMESTAMP type de données stocke la date au format 'YYYY-MM-DD HH: MM: SS' avec une plage de '1970-01-01 00:00:01' UTC à '2038-01- 19 03:14:07 'UTC.

nix TIMESTAMP est le nombre de secondes écoulées depuis 1970-01-01, Si vous voulez stocker l'horodatage unix dans mysql db, vous devez utiliser int(11) avec l'attribut UNSIGNED (pour n'autoriser que les nombres positifs), et si vous souhaitez enregistrer le nombre de microsecondes, vous devez utiliser bigint(20), ..

Si vous souhaitez obtenir le unixtimestamp dans un format lisible dans votre requête de sélection, vous pouvez utiliser

SELECT FROM_UNIXTIME(CAST(yourtable.start_time as UNSIGNED)) as date_time

Si vous utilisez php, vous pouvez utiliser:

$unixtimestamp= time();//1544619186

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

Si vous voulez afficher le datetime en utilisant fuseau horaire local in Javascript utilisez cette fonction

  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

(Dans ce cas, le serveur doit renvoyer le unixTimestamp tel quel: SELECT yourtable.start_time as date_time)

2
Ahmad Zahabi