ข้อมูลชนิด DATE และ datetime

สร้างตาราง tbtest

create table tbtest
(
    id          SERIAL  PRIMARY KEY,
    firstname   varchar(50) NOT NULL,
    date1 DATE,
    date3 datetime year to fraction(3),
    date5 datetime year to fraction(5),
    timestamp   DATETIME YEAR TO FRACTION(5) DEFAULT SYSDATE YEAR TO FRACTION(5) 
);

การ insert ข้อมูลด้วย today

insert into tbtest (firstname, date1, date3, date5) 
values ('jack', today, today, today);

การ insert ข้อมูลด้วยการกำหนดค่า

insert into tbtest (firstname, date1, date3, date5) 
values ('jack1', '30/01/2019', '2019-02-20 00:00:00.000', '2019-02-20 00:00:00.00000');

ลอง select ดู

select * from tbtest

จะได้

ถ้าเป็นชนิด

datetime year to day

ให้ insert ด้วย format

'yyyy-MM-dd'

ถ้าเป็นชนิด

datetime year to second

ให้ insert ด้วย format

'yyyy-MM-dd HH:mm:ss'

การ select datetime ให้ได้เป็น string TO_CHAR Function

SELECT TO_CHAR(TODAY, '%Y-%m-%d') FROM systables WHERE tabid = 1;
--2019-12-25
SELECT TO_CHAR(TODAY, '%Y-%m-%dT%H:%M:%S') || '+07:00' FROM systables WHERE tabid = 1;
--2019-12-25T00:00:00+07:00

การ update ข้อมูล

update tbtest set (firstname, date1) = ('jack2', '10/02/2019') where id = 1;

ใช้ Date() – Date() จะได้ผลลัพธ์เป็น integer

SELECT DATE(TO_DATE('20200101', '%Y%m%d'))          AS date_to_date,
       CAST(TO_DATE('20200101', '%Y%m%d') AS DATE)  AS cast_to_date,
            TO_DATE('20200101', '%Y%m%d')::DATE     AS colon_to_date,
       (TODAY - DATE(TO_DATE('20200101','%Y%m%d'))) AS date_difference
  FROM sysmaster:informix.sysdual;

date_to_date	cast_to_date	colon_to_date	date_difference
2020-01-01	2020-01-01	2020-01-01	34