gpt4 book ai didi

java - 使用java插入数据库表时如何格式化日期变量

转载 作者:行者123 更新时间:2023-11-30 06:27:58 26 4
gpt4 key购买 nike

我有这个代码来构建一个表:

CREATE TABLE Course
(
CustomerName varchar(30) NOT NULL, Title varchar (30) NOT NULL,
Type varchar(30) NOT NULL, Instructor varchar(30) NOT NULL, StartDate Date NOT NULL, EndDate Date NOT NULL,
Price float NOT NULL
);

当我尝试向类(class)表中插入内容时,日期显示格式错误。它要么说日期不能容纳整数或字符串。如何输入日期才能将其排除?以下是我尝试过的所有方法:

INSERT INTO Course(CustomerName, Title, Type, Instructor, StartDate,EndDate,Price) VALUES ('Hary','Intro to Stupidity', 'Programming','Davis', 2017/11/12, 2017/04/03, 124.00);

INSERT INTO Course(CustomerName, Title, Type, Instructor, StartDate,EndDate,Price) VALUES ('Hary','Intro to Stupidity', 'Programming','Davis', 2017-11-12, 2017-04-03, 124.00);

INSERT INTO Course(CustomerName, Title, Type, Instructor, StartDate,EndDate,Price) VALUES ('Hary','Intro to Stupidity', 'Programming','Davis', 2017.11.12, 2017.04.03, 124.00);

INSERT INTO Course(CustomerName, Title, Type, Instructor, StartDate,EndDate,Price) VALUES ('Hary','Intro to Stupidity', 'Programming','Davis', (2017/11/12), (2017/04/03), 124.00);

如果有人能提供帮助那就太好了!

最佳答案

数据库不存储具有“格式”的日期时间值。

但是您可以输入表示为具有格式的字符串的日期时间值。以 SQL (YYYY-MM-DD) 所需的正确格式传递字符串,例如使用双引号的 "2017-11-12"

或者,更好的是,为进入日期时间列的值传递日期时间对象。

 LocalDate localDate = LocalDate.of( 2017 , Month.NOVEMBER , 12 ) ;

使用PreparedStatement来避免SQL注入(inject)安全风险。

myPreparedStatement.setObject( … , localDate ) ;

作为日期时间对象检索。

LocalDate localDate = myResultSet.getObject( … , LocalDate.class ) ;

阅读 Oracle 教程并搜索 Stack Overflow。这些主题已经被讨论过很多次了。

提示:在列名称中全部使用小写字母,以实现跨数据库的最大可移植性。

关于java - 使用java插入数据库表时如何格式化日期变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46721918/

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