Langage Q - Données temporelles

le q le langage a de nombreuses façons différentes de représenter et de manipuler des données temporelles telles que les heures et les dates.

Date

Une date en kdb + est stockée en interne sous la forme du nombre entier de jours depuis notre date de référence est 01Jan2000. Une date postérieure à cette date est stockée en interne sous la forme d'un nombre positif et une date antérieure est référencée comme un nombre négatif.

Par défaut, une date est écrite au format "AAAA.MM.JJ"

q)x:2015.01.22      / This is how we write 22nd Jan 2015

q)`int$x            / Number of days since 2000.01.01
5500i

q)`year$x           / Extracting year from the date
2015i

q)x.year            / Another way of extracting year
2015i

q)`mm$x             / Extracting month from the date
1i

q)x.mm              / Another way of extracting month
1i

q)`dd$x             / Extracting day from the date
22i

q)x.dd              / Another way of extracting day
22i

Arithmetic and logical operations peut être effectué directement sur les dates.

q)x+1        / Add one day
2015.01.23

q)x-7        / Subtract 7 days
2015.01.15

Le 1er janvier 2000 est tombé un samedi. Par conséquent, n'importe quel samedi dans l'histoire ou dans le futur, divisé par 7, donnerait un reste de 0, dimanche donne 1, lundi rendement 2.

Day               mod 7
           Saturday              0
           Sunday                1
           Monday                2
           Tuesday               3
           Wednesday             4
           Thursday              5
           Friday                6

Fois

Une heure est stockée en interne sous la forme du nombre entier de millisecondes depuis le coup de minuit. Une heure est écrite au format HH: MM: SS.MSS

q)tt1: 03:30:00.000     / tt1 store the time 03:30 AM

q)tt1
03:30:00.000

q)`int$tt1              / Number of milliseconds in 3.5 hours
12600000i

q)`hh$tt1               / Extract the hour component from time
3i

q)tt1.hh
3i

q)`mm$tt1               / Extract the minute component from time
30i

q)tt1.mm
30i

q)`ss$tt1               / Extract the second component from time
0i

q)tt1.ss
0i

Comme pour les dates, l'arithmétique peut être effectuée directement sur les heures.

Datetimes

Une date / heure est la combinaison d'une date et d'une heure, séparées par «T» comme dans le format standard ISO. Une valeur datetime stocke le nombre de jours fractionnaires à partir du 1er janvier 2000 à minuit.

q)dt:2012.12.20T04:54:59:000      / 04:54.59 AM on 20thDec2012

q)type dt
-15h

q)dt
2012.12.20T04:54:59.000
9
q)`float$dt
4737.205

Le nombre de jours fractionnaires sous-jacent peut être obtenu par coulée pour flotter.