Number, Date & Boolean Types
Number Types
Section titled “Number Types”| Type | ขนาด | ช่วงค่า | ใช้เมื่อ |
|---|---|---|---|
INTEGER (INT) | 4 bytes | -2.1B ถึง 2.1B | จำนวนเต็มทั่วไป |
BIGINT | 8 bytes | -9.2E18 ถึง 9.2E18 | ID ที่เยอะมาก |
REAL | 4 bytes | 6 decimal digits | ค่าประมาณ (ไม่แม่นยำ) |
NUMERIC(p,s) | variable | กำหนดเอง | เงิน, ค่าที่ต้องแม่นยำ |
Sheets เก็บตัวเลขเป็น floating-point ทั้งหมด ไม่แยก integer / decimal
int quantity = 42;long long big_id = 9999999999LL;float approx = 3.14f; // ไม่แม่นยำdouble precise = 3.14159; // แม่นยำกว่าquantity = 42 # int (ไม่จำกัดขนาด)from decimal import Decimalprice = Decimal("4500.00") # แม่นยำCREATE TABLE products ( id INTEGER, -- จำนวนเต็ม views BIGINT, -- ตัวเลขใหญ่มาก rating REAL, -- ค่าประมาณ เช่น 4.5 price NUMERIC(10,2) -- แม่นยำ: 10 หลักรวม, 2 ทศนิยม);
-- NUMERIC(10,2) เก็บได้ตั้งแต่ -99999999.99 ถึง 99999999.99INSERT INTO products VALUES (1, 1500000, 4.7, 4500.00);Date & Time Types
Section titled “Date & Time Types”| Type | เก็บอะไร | ตัวอย่าง |
|---|---|---|
DATE | วันที่อย่างเดียว | 2025-08-15 |
TIMESTAMP | วันที่ + เวลา (ไม่มี timezone) | 2025-08-15 14:30:00 |
TIMESTAMPTZ | วันที่ + เวลา + timezone | 2025-08-15 14:30:00+07 |
CREATE TABLE events ( id INTEGER, event_date DATE, starts_at TIMESTAMP, created_at TIMESTAMPTZ DEFAULT NOW());
INSERT INTO events (id, event_date, starts_at)VALUES (1, '2025-12-25', '2025-12-25 09:00:00');
-- ดึงเฉพาะปีจาก dateSELECT EXTRACT(YEAR FROM event_date) AS event_yearFROM events;BOOLEAN — ค่าจริง/เท็จ
Section titled “BOOLEAN — ค่าจริง/เท็จ”CREATE TABLE students ( student_id VARCHAR(6), name VARCHAR(100), active BOOLEAN -- TRUE / FALSE / NULL);
-- ค่าที่ยอมรับ: TRUE, FALSE, 't', 'f', 'yes', 'no', 1, 0INSERT INTO students VALUES ('STD001', 'สมชาย', TRUE);INSERT INTO students VALUES ('STD002', 'สมหญิง', 'yes');
-- ใช้ใน WHERE ได้ตรง ๆSELECT name FROM students WHERE active; -- เหมือน active = TRUESELECT name FROM students WHERE NOT active; -- เหมือน active = FALSEสรุป: เลือก Type ให้ตาราง students
Section titled “สรุป: เลือก Type ให้ตาราง students”CREATE TABLE students ( student_id VARCHAR(6), -- รหัสไม่เกิน 6 ตัว name VARCHAR(100), -- ชื่อไม่เกิน 100 ตัว email VARCHAR(100), -- อีเมลไม่เกิน 100 ตัว price NUMERIC(10,2), -- เงิน ต้องแม่นยำ enrolled_on DATE, -- วันที่สมัคร ไม่ต้องมีเวลา active BOOLEAN -- สถานะ active / inactive);