创建格式为 "yyyy-mm-dd" 的变量日期
Create a variable Date in format "yyyy-mm-dd"
我正在尝试向我的 table 中插入格式为 "yyyy-mm-dd" 的日期。我的 table 有一个字段 date
类型 DATETIME,我使用 SQLite DB SYSTEM。我需要采用这种格式,所以稍后可以选择 select 日期从 - 然后。
我的table:
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)?
您必须创建一个 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
.
注意 格式应用于 String
表示 Date
存储日期时,您无需担心日期的格式。数据库将简单地存储日期实例,您可以使用其功能之一对其进行格式化 检索时。
SQL 精简日期函数:https://www.sqlite.org/lang_datefunc.html
如果您不想受限于特定数据库供应商的功能,您还可以使用 Java 使用 SimpleDateFormat 格式化检索日期:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
我正在尝试向我的 table 中插入格式为 "yyyy-mm-dd" 的日期。我的 table 有一个字段 date
类型 DATETIME,我使用 SQLite DB SYSTEM。我需要采用这种格式,所以稍后可以选择 select 日期从 - 然后。
我的table:
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)?
您必须创建一个 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
.
注意 格式应用于 String
表示 Date
存储日期时,您无需担心日期的格式。数据库将简单地存储日期实例,您可以使用其功能之一对其进行格式化 检索时。
SQL 精简日期函数:https://www.sqlite.org/lang_datefunc.html
如果您不想受限于特定数据库供应商的功能,您还可以使用 Java 使用 SimpleDateFormat 格式化检索日期:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html