如果直接执行select TO_TIMESTAMP可以校验时间格式,发现时间无效就报错,但是放在约束中TO_TIMESTAMP函数就不校验时间格式,时间无效也不会报错 ,只会让约束执行成功,有没有什么解决办法在约束中也能报错。
建表语句如下:
CREATE TABLE tmp_test (_lid INT, begintime TIMESTAMP, col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT);
约束如下:
ALTER TABLE tmp_test
ADD CONSTRAINT tmp_test_0001 CHECK
(
begintime IS NOT NULL AND
begintime >= TO_TIMESTAMP(‘20240199000000’, ‘YYYYMMDDHH24MISS’) AND
begintime < TO_TIMESTAMP(‘20240101010000’, ‘YYYYMMDDHH24MISS’)
);