oracle日期类型默认值,oracle db列日期默认值不是sysdate(oracle db column date default value not sysdate)...

oracle db列日期默认值不是sysdate(oracle db column date default value not sysdate)

如何设置日期列的默认值为不同于sysdate的东西? 像01/07/1998,即时通讯使用

ALTER TABLE XILIADO

ADD (FECHA_AFIL DATE DEFAULT sysdate NOT NULL);

how to set the default value for a date column for something diferent that sysdate? like 01/07/1998, im currently using

ALTER TABLE XILIADO

ADD (FECHA_AFIL DATE DEFAULT sysdate NOT NULL);

原文:https://stackoverflow.com/questions/44446372

更新时间:2020-01-23 03:10

最满意答案

只需使用固定的日期,或者使用to_date()和字符串文本以及匹配的格式模型或日期文字:

ALTER TABLE XILIADO

ADD (FECHA_AFIL DATE DEFAULT DATE '1998-07-01' NOT NULL);

(假设你的例子是DD / MM / YYYY格式;日期文字是明确的,这是使用它们的另一个优点。)

Just use a fixed date, either with to_date() with a string literal and matching format model, or a date literal:

ALTER TABLE XILIADO

ADD (FECHA_AFIL DATE DEFAULT DATE '1998-07-01' NOT NULL);

(assuming your example was in DD/MM/YYYY format; date literals are unambiguous, which is another advantage of using them.)

2017-06-08

相关问答

这个表达式: to_date(SYSDATE, 'yyyy-MM-dd')

没有意义。 SYSDATE 已经是一个日期。 因此,此表达式使用系统上的任何本地设置将SYSDATE转换为字符串。 然后,它使用格式'yyyy-MM-dd'将结果转换为日期。 对于本地设置的许多值,这将失败。 如果你想要差异,那么做这样的事情: SELECT (trunc(SYSDATE) - trunc(LoginDate)) as difference

FROM LOGINRECORDS

WHERE LoginRe

...

您需要在括号中指定DEFAULT值: 创建表: CREATE TABLE order_status (

order_id NUMBER,

last_modified DATE DEFAULT (SYSDATE - 2)

);

插入记录以测试默认值: INSERT INTO order_status

(order_id)

VALUES

(1);

从表中选择数据以确认默认工作(当前日期14/11/2011): SELECT *

FROM order_status;

ORDER_ID

...

您正在使用SYSDATE构建您的虚拟列。 这是不允许的,因为SYSDATE不是确定性的,即它不总是返回相同的值。 想象一下你在这个专栏上建立一个索引。 第二秒后,索引已经失效! 看来你应该写一个包含这个特别计算列的视图 。 You are using SYSDATE to build your virtual column. This is not allowed, because SYSDATE is not deterministic, i.e. it doesn't always retur

...

我可能会做类似的事情 WHERE some_date_col BETWEEN trunc(sysdate-1) + interval '17' hour -- 5pm yesterday

AND trunc(sysdate) + interval '7' hour -- 7am today

和 WHERE some_date_col BETWEEN trunc(sysdate) + interval '7' hour -- 7am today

...

用这个男人 select TO_CHAR(sysdate, 'DAY') FROM DUAL;

你用这个: to_date(sysdate, 'DD-MON-YYYY')

给你的日期= 1/1 / 0013这是星期天 use this: select TO_CHAR(sysdate, 'DAY') FROM DUAL;

you are using this : to_date(sysdate, 'DD-MON-YYYY')

which is giving you date=1/

...

只需使用固定的日期,或者使用to_date()和字符串文本以及匹配的格式模型或日期文字: ALTER TABLE XILIADO

ADD (FECHA_AFIL DATE DEFAULT DATE '1998-07-01' NOT NULL);

(假设你的例子是DD / MM / YYYY格式;日期文字是明确的,这是使用它们的另一个优点。) Just use a fixed date, either with to_date() with a string literal and matchi

...

这在Oracle中也是如此。 Oracle语法几乎相同。 在Oracle中不使用关键字WITH ,只使用关键字DEFAULT 。 Oracle中的USER是USER而不是SESSION_USER 。 This works the same in Oracle. The Oracle syntax is almost the same. You don't use the keyword WITH in Oracle, only the keyword DEFAULT. And the user i

...

我过度思考的事情。 我将CSV中的数据列的值设置为CURRENT_TIMESTAMP,将列def保留在loadUpdateData中作为日期并摆脱defaultValueComputed / valueDate。 工作很好。 I was over-thinking things. I set the value of the data column in my CSV to CURRENT_TIMESTAMP, keep the column def in loadUpdateData as da

...

您可以为调用所需函数的表编写INSERT触发器。 You can write an INSERT trigger for the table that calls the function you want.

你试过的第三次尝试几乎就是这样。 HH:MM部分是错误的: 应使用MI(分钟)代替MM(月) 应该使用HH24来代替HH 参考日期时间格式模型 。 这一个应该工作: TO_DATE(u.END_DATE, 'MM/DD/YYYY HH24:MI') > SYSDATE

The third attempt you have tried is almost it. The HH:MM portion is wrong: MI (Minutes) should be used instead of M

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值