Linguaggio Q - Dati temporali
Il q il linguaggio ha molti modi diversi di rappresentare e manipolare i dati temporali come orari e date.
Data
Una data in kdb + viene memorizzata internamente come numero intero di giorni trascorsi dalla data di riferimento 01Jan2000. Una data successiva a questa data viene memorizzata internamente come numero positivo e una data precedente viene indicata come numero negativo.
Per impostazione predefinita, una data viene scritta nel formato "AAAA.MM.GG"
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
22iArithmetic and logical operations può essere eseguito direttamente nelle date.
q)x+1        / Add one day
2015.01.23
q)x-7        / Subtract 7 days
2015.01.15Il 1 gennaio 2000 è caduto di sabato. Pertanto, qualsiasi sabato nella storia o in futuro se diviso per 7, produrrebbe un resto di 0, la domenica restituirà 1, il lunedì restituirà 2.
Day               mod 7
           Saturday              0
           Sunday                1
           Monday                2
           Tuesday               3
           Wednesday             4
           Thursday              5
           Friday                6Volte
Un'ora viene memorizzata internamente come numero intero di millisecondi dallo scoccare della mezzanotte. Un'ora è scritta nel formato 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
0iCome nel caso delle date, l'aritmetica può essere eseguita direttamente sugli orari.
Datetimes
Un datetime è la combinazione di una data e un'ora, separate da una "T" come nel formato standard ISO. Un valore datetime memorizza il conteggio frazionario dei giorni dalla mezzanotte del 1 gennaio 2000.
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.205Il conteggio frazionario dei giorni sottostanti può essere ottenuto lanciando per galleggiare.
