Ngôn ngữ Q - Dữ liệu thời gian
Các q ngôn ngữ có nhiều cách khác nhau để biểu diễn và thao tác dữ liệu thời gian như thời gian và ngày tháng.
Ngày
Ngày trong kdb + được lưu trữ nội bộ dưới dạng số nguyên của ngày kể từ ngày tham chiếu của chúng tôi là 01Jan2000. Ngày sau ngày này được lưu trữ nội bộ dưới dạng số dương và ngày trước đó được tham chiếu dưới dạng số âm.
Theo mặc định, ngày được viết ở định dạng “YYYY.MM.DD”
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 có thể được thực hiện trực tiếp vào các ngày.
q)x+1 / Add one day
2015.01.23
q)x-7 / Subtract 7 days
2015.01.15
Ngày 1 tháng 1 năm 2000 rơi vào một ngày thứ bảy. Do đó, bất kỳ ngày thứ Bảy nào trong suốt lịch sử hoặc trong tương lai khi chia cho 7, sẽ mang lại phần còn lại là 0, Chủ nhật cho kết quả là 1, Thứ hai cho kết quả là 2.
Day mod 7
Saturday 0
Sunday 1
Monday 2
Tuesday 3
Wednesday 4
Thursday 5
Friday 6
Times
Thời gian được lưu trữ nội bộ dưới dạng số nguyên của mili giây kể từ khoảng thời gian nửa đêm. Thời gian được viết ở định dạng 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
Như trong trường hợp ngày tháng, số học có thể được thực hiện trực tiếp vào thời gian.
Ngày giờ
Ngày giờ là sự kết hợp của ngày và giờ, được phân tách bằng chữ 'T' như ở định dạng tiêu chuẩn ISO. Giá trị ngày giờ lưu trữ số ngày phân số từ nửa đêm ngày 1 tháng 1 năm 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.205
Số ngày phân số cơ bản có thể thu được bằng cách đúc để thả nổi.