gpt4 book ai didi

sql - 在 SQL 表中插入日期值

转载 作者:行者123 更新时间:2023-12-01 13:30:13 26 4
gpt4 key购买 nike

我有下表:

EMPNO(number), ENAME(varchar), JOB(char), MGR(number), HIREDATE(date), SAL(number), DEPTNO(number)

我尝试插入以下内容:
insert into EMP_TF1605(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, DEPTNO)
values(7369, 'SMITH', 'CLERK', 7902, 17-DEC-1980, 800, 20);

结果 :
发生了错误。重新检查您的 SQL 语句

我确定这是不正确的日期?

最佳答案

始终使用 ANSI date 的默认字符串文字格式即 YYYY-MM-DD像下面。

INSERT INTO EMP_TF1605(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, DEPTNO)
VALUES(7369,
'SMITH',
'CLERK',
7902,
'1980-12-17',
800,
20);

它将在大多数 rdbms 中成功插入您的数据,即 MySQL、PostgreSQL、SQL Server。

在 Oracle 中,您需要将其转换为 date使用函数 to_date([value],[format]在插入之前,如下所示。
INSERT INTO EMP_TF1605(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, DEPTNO)
VALUES(7369,
'SMITH',
'CLERK',
7902,
to_date('1980-12-17', 'yyyy-mm-dd'),
800,
20);

但是,如果您输入的日期是有问题的格式,您可以使用 cast在 SQL Server 中将其转换为 datetime插入前如下。
INSERT INTO EMP_TF1605(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, DEPTNO)
VALUES(7369,
'SMITH',
'CLERK',
7902,
cast('17-Dec-1980' AS datetime),
800,
20);

对于其他 rdbms,您需要寻找等效的转换函数。

更新:

在 Oracle 中,对于所提供的日期格式,您可以使用 to_date使用格式 'DD-MON-YYYY' 转换您的字符串日期文字输入到数据类型 date .
TO_DATE('20-SEP-2017', 'DD-MON-YYYY')

您可以查看演示,即 MySQL , PostgreSQL , SQL Server , Oracle

关于sql - 在 SQL 表中插入日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46312391/

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