如何处理SQL(mySQL)中的非标准日期格式?

问题描述 投票:0回答:1

我现在不熟悉SQL,现在正在学习。我正在使用在Ubuntu 18.04上安装的MySQL。

我有下表:

CREATE TABLE IF NOT EXISTS product(name varchar(255) NOT NULL, availability date NOT NULL);

我想在表中插入以下记录:

INSERT INTO产物(名称,可用性) VALUES ('Title 1', last Wednesday);

执行时出现以下错误:

第21行的错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取在“星期三)附近使用的正确语法”

我了解此格式(“上周三”,“下周” ..)不是标准的日期格式。我想知道是否有可能在MySQL中创建用户定义的类型,以便能够处理这些定制的日期记录。

到目前为止,我在网络上发现的日期仍然包含或多或少包含标准日期格式的日期,而不像上面提到的那样(使用强制转换,解析...)。

mysql sql
1个回答
0
投票

当存储在数据库中时,您需要有意义的信息。产品的值“上周三”,则不会提供任何合理的可用性信息。例如,上个星期三从哪个日期开始?如果有人在最​​后一个星期三但比今天晚2个月要求所有可用产品,那么寻找“最后星期三”的查询将返回什么?绝对无效的结果。因此,如果要存储日期,请使用date / datetime数据类型。您可以通过使用带有varchar数据类型的附加列来添加所需的任何自定义描述,但我不会将其用作主要信息源。

© www.soinside.com 2019 - 2024. All rights reserved.