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
...