我正在尝试在我的表格中插入一个格式为"yyyy-mm-dd"的日期。我的表有一个字段date
类型为DATETIME,我使用SQLite DB SYSTEM。我需要采用这种格式,所以稍后可以选择从中选择日期 - 然后。
我的桌子:
CREATE TABLE "IsSELECTED"(
"date" DATETIME PRIMARY KEY NOT NULL DEFAULT (CURRENT_DATE) ,
"morning" BOOL NOT NULL DEFAULT (0) ,
"noon" BOOL NOT NULL DEFAULT (0) ,
"night" BOOL NOT NULL DEFAULT (0)
)
以及我尝试插入的方法。
public void setTodayInfo(HttpSession session, Date date)
throws SQLException, ClassNotFoundException {
System.out.println("Initialize today's info...");
String sq = "INSERT INTO IsSELECTED (date, morning, noon, night) VALUES (?, ?, ?, ?)";
try {
Class.forName(typeDB);
c = DriverManager.getConnection(path);
stm = c.prepareStatement(sq);
PreparedStatement stm = c.prepareStatement(sq);
stm.setDate(1, date);
stm.setBoolean(2, FALSE);
stm.setBoolean(3, FALSE);
stm.setBoolean(4, FALSE);
int rowsAffected = stm.executeUpdate();
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
if (stm != null) {
stm.close();
}
if (c != null) {
c.close();
}
}
}
如何创建格式为"yyyy-mm-dd"的变量 (DATE) ?
存储日期时无需担心日期的格式。数据库将只存储日期实例,您可以使用其函数之一在检索时对其进行格式化。
SQL Lite 日期函数:https://www.sqlite.org/lang_datefunc.html
如果您不想绑定到特定数据库供应商的功能,您还可以使用 Java 来格式化检索日期,使用 SimpleDateFormat: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
您必须创建一个DateFormat
实例并使用它。使用 format
从日期获取字符串。使用 parse
从字符串中获取日期。请注意,您可能需要格式yyyy-MM-dd
而不是yyyy-mm-dd
。MM 表示月,mm 表示分秒
Date now = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(df.format(now)); // Prints today date in yyyy-MM-dd format
Date firstJune = df.parse("2015-06-01");
在数据库中,该字段是一个日期字段,因此您必须将数据转换String
保存到Date
或直接保存Date
。
请注意,格式将应用于Date
的String
表示