Dates as Serial Numbers
วันที่ไม่ใช่วันที่
Section titled “วันที่ไม่ใช่วันที่”สิ่งที่คุณเห็นเป็น “24/04/2026” แต่ข้างในเซลล์จริง ๆ คือตัวเลขจำนวนเต็ม เช่น 46127 — นี่คือ Serial Number
ดูด้วยตาตัวเอง
Section titled “ดูด้วยตาตัวเอง”ลองพิมพ์ในเซลล์ใด ๆ:
=N(TODAY())ฟังก์ชัน N() แปลงค่าให้เป็นตัวเลข — คุณจะเห็นตัวเลข Serial Number ของวันนี้
Epoch: 30 ธันวาคม 1899
Section titled “Epoch: 30 ธันวาคม 1899”Google Sheets ใช้ Epoch วันที่ 30 ธันวาคม 1899 เป็นจุดเริ่มต้น (Serial Number = 0)
| Serial Number | วันที่ |
|---|---|
| 0 | 30 Dec 1899 |
| 1 | 31 Dec 1899 |
| 2 | 1 Jan 1900 |
| 44927 | 1 Jan 2023 |
=DATE(1900,1,1) → Serial Number = 2=DATE(2023,1,1) → Serial Number = 44927#include <stdio.h>#include <time.h>int main() { // C ใช้ Unix Epoch: 1 Jan 1970 time_t now = time(NULL); printf("Seconds since epoch: %ld\n", now); return 0;}from datetime import datetime, date
# Python ใช้ ordinal (1 Jan 0001 = 1)today = date.today()print(f"Ordinal: {today.toordinal()}")
# Unix timestamp (seconds since 1 Jan 1970)print(f"Timestamp: {datetime.now().timestamp()}")-- MySQL: วันที่เก็บเป็น internal formatSELECT UNIX_TIMESTAMP(NOW()); -- seconds since 1970SELECT DATEDIFF('2023-12-31', '2023-01-01'); -- days betweenเวลา = ส่วนทศนิยม
Section titled “เวลา = ส่วนทศนิยม”เวลาใน Sheets เป็น ส่วนทศนิยม ของ Serial Number:
| ทศนิยม | เวลา |
|---|---|
| 0.0 | 00:00 (เที่ยงคืน) |
| 0.25 | 06:00 |
| 0.5 | 12:00 (เที่ยงวัน) |
| 0.75 | 18:00 |
=N(NOW()) → เช่น 46127.65 (วันนี้ เวลาประมาณ 15:36)=N(NOW()) - INT(N(NOW())) → ส่วนเวลาอย่างเดียว=TEXT(0.5, "HH:mm") → "12:00"ทดลอง: สร้างวันที่จากตัวเลข
Section titled “ทดลอง: สร้างวันที่จากตัวเลข”=DATE(2026,4,24) → พิมพ์แล้ว format เป็น Date=44927 → พิมพ์แล้วเปลี่ยน Format เป็น Date → จะเห็น 1 Jan 2023#include <stdio.h>#include <time.h>int main() { struct tm t = {0}; t.tm_year = 2026 - 1900; t.tm_mon = 3; // April (0-indexed) t.tm_mday = 24; time_t epoch = mktime(&t); printf("Epoch: %ld\n", epoch); return 0;}from datetime import datetime, timedeltanow = datetime.now()fraction = (now.hour * 3600 + now.minute * 60 + now.second) / 86400print(f"Time as fraction of day: {fraction:.4f}")# 0.5 = noon, 0.75 = 18:00SELECT TIME_TO_SEC(CURTIME()) / 86400 AS time_fraction;-- noon → 0.5000- วันที่ใน Sheets = Serial Number (จำนวนวันนับจาก 30 Dec 1899)
- เวลา = ส่วนทศนิยม ของ Serial Number (0.5 = เที่ยงวัน)
- ถ้าวันที่แสดงเป็นตัวเลข → เปลี่ยน Format เป็น Date
- ทุกภาษามี Epoch ของตัวเอง — C/Python ใช้ Unix Epoch (1 Jan 1970)