2017-08-20 3 views
0

J'ai du mal à convertir Epoch à ISO datetime avec Couchbase N1QL. Couchbase stocke le temps d'horloge en millisecondes et j'ai besoin du format ISO8 complet YYY-MM-DDThh: mm: ss.S. J'ai essayé:Couchbase convertir époque à ISO

SELECT DATE_PART_MILLIS(1463284740000, 'year'), DATE_PART_MILLIS(1463284740000, 'month'), DATE_PART_MILLIS(1463284740000, 'day') 

mais il renvoie évidemment la réponse de type JSON. J'essaye de concaténer comme SELECT DATE_PART_MILLIS(1463284740000, 'year') || DATE_PART_MILLIS(1463284740000, 'month') || DATE_PART_MILLIS(146328474000 0, 'jour')

Mais il rend rien en retour

[ 
    { 
    "$1": null 
    } 
] 

Toute suggestion?

Répondre

0

Dans Couchbase, vous pouvez stocker l'heure sous la forme d'un nombre (en millisecondes) ou d'une chaîne au format ISO-8601. Il offre de nombreuses fonctions de date pour travailler sur format ISO-8601 comme décrit à https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/datefun.html

SELECT MILLIS_TO_STR(1463284740000); 

DATE_PART_MILLIS (date1, partie [, tz]) Extrait la valeur d'une composante date donnée à partir d'un horodatage Epoch/UNIX valeur. Valeur de retour - Entier représentant la valeur du composant extrait de l'horodatage. La concaténation de chaîne attend la chaîne, Ajouter le TOSTRAGE autour de la fonction comme

SELECT TOSTRING(DATE_PART_MILLIS(1463284740000, 'year')) || "-" || 
     TOSTRING(DATE_PART_MILLIS(1463284740000, 'month')) || "-" || 
     TO_STRING(DATE_PART_MILLIS(1463284740000, 'day'));