gpt4 book ai didi

mysql - date(now()) 在 MySQL 8.0.22 中给出 "' (' is not valid at this position, expecting ' text'"

转载 作者:行者123 更新时间:2023-12-04 08:21:15 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





CURRENT_DATE/CURDATE() not working as default DATE value

(9 个回答)


8 个月前关闭。




我对学习 SQL 和数据库创建/管理非常陌生,我遇到了一个似乎找不到现有答案的问题。我现在正在使用 MySQL 进行学习,并且正在运行 8.0.22 版。我正在尝试使用 date 函数从 now() 中提取结果的日期部分以用作默认值,但它给了我标题中指定的错误。
我尝试了几件事,但它们似乎没有改变任何东西。
这是我首先尝试的。

INV_DATE DATE DEFAULT date(now()) NOT NULL,
然后我试了一下:
INV_DATE DATE DEFAULT date'2016-01-01' NOT NULL,
只是为了看看这在语法上是否有效并且确实如此。
当我将 DATE 数据类型更改为 DATETIME 时,NOW() 自行工作。
我只是不确定这个功能发生了什么。
任何帮助,将不胜感激!
编辑:这是正在运行的上下文。
CREATE TABLE INVOICE (
INV_NUMBER INTEGER,
INV_DATE DATE DEFAULT now() NOT NULL,
PRIMARY KEY(INV_NUMBER),
FOREIGN KEY (CUS_CODE) REFERENCES CUSTOMER (CUS_CODE) ON UPDATE CASCADE);
我尝试使用 now() 作为默认值的原因是因为我使用的学习 Material 在方言之间跳转来演示内容,并且在这部分使用 Oracle SQL。表明:
INV_DATE DATE DEFAULT SYSDATE NOT NULL,
我试图将其转换为 MySQL 等效项。

最佳答案

规则 - now()不允许作为 date 的默认值数据类型列。
另外,如果你想使用 now()在您的查询中,您不需要 date(now())只有now()足够。
检查 db<>fiddle查看 now() 的错误作为默认值,没有它。

关于mysql - date(now()) 在 MySQL 8.0.22 中给出 "' (' is not valid at this position, expecting ' text'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65489120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com