UNIX_MICROS |
Microsecondes UNIX |
| BigQuery |
Syntaxe
|
UNIX_MICROS(timestamp_expression)
|
Paramètres
| Nom |
Description |
| timestamp_expression |
Ce paramètre permet de spécifier l'expression de type TIMESTAMP pour laquelle vous souhaitez calculer le nombre de microsecondes écoulées depuis l'époque UNIX (le 1er janvier 1970, 00:00:00 UTC). La fonction retourne un nombre entier (INT64) représentant le nombre de microsecondes entre cet horodatage et le 1er janvier 1970. Si l'horodatage fourni est antérieur à l'époque UNIX, le résultat sera un nombre négatif. |
Description
Cette fonction permet de calculer le nombre de microsecondes s'étant écoulé entre l'expression d'horodatage spécifié et le 1er janvier 1970.
Remarques
- Précision maximale sur l'axe temporel : La fonction UNIX_MICROS permet d'obtenir la différence entre un horodatage (TIMESTAMP) et le 1er janvier 1970 à
une précision de l'ordre de la microseconde, soit un millionième de seconde. C'est idéal pour les cas d'usage nécessitant une très haute précision temporelle, comme
les journaux d'événements (logs) ou les mesures scientifiques.
- Renvoie un entier (INT64) représentant le temps écoulé : Le résultat de la fonction est un entier 64 bits qui exprime la durée en microsecondes depuis
l'époque UNIX. Cela permet de manipuler facilement les dates et heures en effectuant des opérations arithmétiques directement sur ces valeurs.
- Les valeurs peuvent être négatives pour les dates antérieures à 1970 : Si le TIMESTAMP fourni est antérieur au 1er janvier 1970, la fonction retournera
une valeur négative. Par exemple, UNIX_MICROS(TIMESTAMP '1969-12-31 23:59:59.999999') renverra -1.
- Particulièrement utile pour les formats de séries temporelles externes : De nombreux systèmes d'entreposage et d'échange de données utilisent le nombre
de microsecondes depuis 1970 comme référence temporelle (exemple : bases NoSQL, formats Avro, Kafka,...). UNIX_MICROS permet donc une interopérabilité directe avec
ces systèmes.
- Complémentaire à TIMESTAMP_MICROS pour les conversions inverses : On peut utiliser UNIX_MICROS pour convertir un TIMESTAMP vers une valeur numérique, et
TIMESTAMP_MICROS pour revenir de cette valeur vers un TIMESTAMP. Cela facilite les va-et-vient entre formats numériques et temporels dans les traitements de données.
- Plus précis que UNIX_MILLIS ou UNIX_SECONDS : Contrairement à UNIX_MILLIS (millisecondes) ou UNIX_SECONDS (secondes), UNIX_MICROS offre une résolution
temporelle bien plus fine. C'est indispensable dans des contextes comme les systèmes de capteurs, les enregistrements de transactions rapides ou les outils de benchmark.
- Permet une meilleure gestion des horodatages très rapprochés : Avec cette fonction, il est possible de différencier deux événements séparés d'une
microseconde, ce que d'autres fonctions comme UNIX_SECONDS ne permettent pas. Cela évite les erreurs d'agrégation ou de tri dans les ensembles de données où l'ordre temporel
est essentiel.
- Peut introduire de grandes valeurs numériques à manipuler : Puisque le résultat est en microsecondes depuis 1970, les valeurs obtenues sont généralement
très grandes (par exemple, plus de 1,6 × 10¹? en 2025). Il faut donc faire attention aux conversions ou aux systèmes cibles qui pourraient ne pas supporter de si grands
entiers sans perte de précision.
Dernière mise à jour : Jeudi, le 18 Juin 2020