Java INSERT今天在sql数据库中

时间:2013-11-12 22:49:44

标签: java sql date time

我已经搜索了很长时间,但我无法找到答案。 我的问题很简单......

如何使用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);
}

2 个答案:

答案 0 :(得分:2)

日期是日期,而不是字符串

您似乎想要制作一个日期时间字符串。不必要。 JDBC知道Java数据类型java.sql.Date,它是java.util.Date的瘦包装器。

请参阅另一个问题Datetime in javathis java2s.com tutorial中的示例。

约达时间

顺便说一句,如果使用Joda-Time,您可以在org.joda.time.DateTime和java.util.Date之间轻松转换。在toDate()课程上调用DateTime方法。

Java 8中的JSR 310

将来,Java 8包含一组由JSR 310: Date and Time API定义的新的java.time。*类,以取代臭名昭着的java.util.Date/Calendar类。这些课程的灵感来自Joda-Time,但完全是重新设计的。

ISO 8601字符串格式

如果您确实要将日期时间作为字符串传递,请使用数据库识别的格式。例如,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 + "')";