Q Dili - Zamansal Veriler

q dil, zaman ve tarihler gibi zamansal verileri temsil etmenin ve değiştirmenin birçok farklı yoluna sahiptir.

Tarih

Kdb + cinsinden bir tarih, referans tarihimiz 01Ocak2000 olduğundan bu yana günlerin tam sayısı olarak dahili olarak depolanır. Bu tarihten sonraki bir tarih dahili olarak pozitif bir sayı olarak depolanır ve ondan önceki bir tarih negatif bir sayı olarak belirtilir.

Varsayılan olarak, "YYYY.MM.DD" biçiminde bir tarih yazılır

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 doğrudan tarihlerde gerçekleştirilebilir.

q)x+1        / Add one day
2015.01.23

q)x-7        / Subtract 7 days
2015.01.15

1 Ocak 2000 Cumartesi günü düştü. Bu nedenle, tarih boyunca veya gelecekte 7'ye bölündüğünde herhangi bir Cumartesi, 0'ın kalanını, Pazar 1'i, Pazartesi getirisi 2'yi verir.

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

Zamanlar

Bir saat, gece yarısının vuruşundan bu yana geçen tam sayı milisaniye olarak dahili olarak depolanır. HH: MM: SS.MSS biçiminde bir saat yazılır.

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

Tarihlerde olduğu gibi, aritmetik doğrudan saatler üzerinde gerçekleştirilebilir.

Veri saatleri

Tarih saat, ISO standart biçiminde olduğu gibi 'T' ile ayrılmış bir tarih ve saatin birleşimidir. Tarih saat değeri, 1 Ocak 2000 gece yarısından itibaren kesirli gün sayısını depolar.

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

Temel kesirli gün sayısı float'a dönüştürülerek elde edilebilir.