Q Sprache - Zeitdaten

Das q Sprache hat viele verschiedene Möglichkeiten, zeitliche Daten wie Zeiten und Daten darzustellen und zu bearbeiten.

Datum

Ein Datum in kdb + wird intern als ganzzahlige Anzahl von Tagen seit unserem Referenzdatum 01Jan2000 gespeichert. Ein Datum nach diesem Datum wird intern als positive Zahl gespeichert, und ein Datum davor wird als negative Zahl bezeichnet.

Standardmäßig wird ein Datum im Format „JJJY.MM.TT“ geschrieben.

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 kann direkt an Terminen durchgeführt werden.

q)x+1        / Add one day
2015.01.23

q)x-7        / Subtract 7 days
2015.01.15

Der 1. Januar 2000 fiel auf einen Samstag. Daher würde jeder Samstag in der Geschichte oder in der Zukunft, wenn er durch 7 geteilt wird, einen Rest von 0 ergeben, Sonntag ergibt 1, Montag ergibt 2.

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

Mal

Eine Zeit wird intern als ganzzahlige Anzahl von Millisekunden seit dem Mitternachtsstrich gespeichert. Eine Zeit wird im Format HH: MM: SS.MSS geschrieben

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

Wie bei Datumsangaben kann die Arithmetik direkt zu bestimmten Zeiten ausgeführt werden.

Datetimes

Eine Datums- / Uhrzeitangabe ist die Kombination aus Datum und Uhrzeit, die wie im ISO-Standardformat durch 'T' getrennt sind. Ein Datum / Uhrzeit-Wert speichert die Anzahl der gebrochenen Tage ab dem 1. Januar 2000, Mitternacht.

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

Die zugrunde liegende gebrochene Tageszahl kann durch Gießen zum Schweben erhalten werden.