我已经搜索了很长时间,但我无法找到答案。 我的问题很简单......
如何使用java在Date格式的sql数据库中插入今天的日期? 这是代码。 (时间和日期现在为空,我如何让它们获得现在的时间和今天的日期)
String timeNow = null;
DateFormat dateNow = null;
String sql = "INSERT INTO fys.`luggage` (customer_id, description, location, date, time, is_lost, is_handled) VALUES ('"
+ customerId + "', '" + description + "', '" + location + "', '"
+ dateNow + "', '" + timeNow + "', '" + isLost
+ "', '" + isHandled + "')";
db.insertQuery(sql);
}
答案 0 :(得分:2)
您似乎想要制作一个日期时间字符串。不必要。 JDBC知道Java数据类型java.sql.Date,它是java.util.Date的瘦包装器。
请参阅另一个问题Datetime in java或this java2s.com tutorial中的示例。
顺便说一句,如果使用Joda-Time,您可以在org.joda.time.DateTime和java.util.Date之间轻松转换。在toDate()
课程上调用DateTime方法。
将来,Java 8包含一组由JSR 310: Date and Time API定义的新的java.time。*类,以取代臭名昭着的java.util.Date/Calendar类。这些课程的灵感来自Joda-Time,但完全是重新设计的。
如果您确实要将日期时间作为字符串传递,请使用数据库识别的格式。例如,Postgres接受ISO 8601格式和其他格式。请参阅Postgres文档中Date/Time Types页面的“日期/时间输入”部分。
通常,让数据库引擎插入日期时间而不是使用您的编程语言更好。大多数每个数据库系统都有各种功能,您可以调用它们来生成当前日期时间。 SQL标准指定了few such functions,但通常数据库系统还提供其他各种功能。
例如,Postgres 9 offers several ways获取当前日期时间。
请务必学习文档。例如,在Postgres中,您可以选择获取交易开始时的日期时间,或者您可以获得执行日期时间功能的时刻(晚于交易开始)。当您在多个记录中记录该时间并希望它们在相同的时间值上匹配时,事务开始时间非常有用。
答案 1 :(得分:1)
不需要你的变量。即使很难初始化Date(随着时间)到现在也只是创建一个默认的。新的日期();
直接使用SYSDATE。无需使用2列。因为DATE实际上也占有时间。
String sql = "INSERT INTO fys.`luggage` (customer_id, description, location, date_time, is_lost, is_handled) VALUES ('"
+ customerId + "', '" + description + "', '" + location + "', SYSDATE, '" + isLost
+ "', '" + isHandled + "')";