限制使用DATE [英] Constrains using DATE

查看:54
本文介绍了限制使用DATE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个约束来检查记录是否大于2016年.

I'm trying to create a constrain to check the record is no greater than 2016.

这是我数据库中的记录

这是我的查询:

ALTER TABLE SIGHTINGS 
   ADD CONSTRAINT CK_SIGHTING_DATE 
   CHECK (SIGHTING_DATE <=TO_DATE('01-JAN-16'));

但是我收到一条错误消息:第1行出现错误:

But I got an error says: ERROR at line 1:

ORA-02436:在CHECK中错误指定了日期或系统变量约束.

ORA-02436: date or system variable wrongly specified in CHECK constraint.

我已经在此网站上检查了一些类似的问题,但是解决方案不能解决我的问题.

I've checked some similar questions on this website but there solutions doesn't solve my problem.

推荐答案

一种选择是使用 extract()函数,就像您只想检查年份一样:

One option is to use the extract() function as you just want to check for the year:

ALTER TABLE SIGHTINGS 
   ADD CONSTRAINT CK_SIGHTING_DATE 
   CHECK (extract(year from SIGHTING_DATE) < 2016);

或使用ANSI日期文字:

or use an ANSI date literal:

ALTER TABLE SIGHTINGS 
   ADD CONSTRAINT CK_SIGHTING_DATE 
   CHECK (SIGHTING_DATE < date '2016-01-01');

这篇关于限制使用DATE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆