插入和选择日期 (Java) (MySQL)

Posted

技术标签:

【中文标题】插入和选择日期 (Java) (MySQL)【英文标题】:Inserting and Selecting Date (Java) (MySQL) 【发布时间】:2012-11-02 04:19:22 【问题描述】:

我有一个表,我必须在其中执行 SELECT ... BETWEEN start_date AND end_date,并将 Date 值插入到同一个表中。

我读过类似的东西:

java.util.Date now = new java.util.Date();
pStmt.setDate( 1, new java.sql.Date( now.getTime() ) );
pStmt.setTimestamp( 2, new java.sql.Timestamp( now.getTime() ) );
pStmt.executeUpdate();

但是那种代码设置或获取当前日期,不是吗?我想自己插入和选择自定义日期。

我也在 *** 阅读了它:

SELECT *
FROM myTable
WHERE ( YEAR(myfield) = '2009')
  AND ( MONTH(myfield) = '1')

是否也可以将Date 字段设为String,然后使用StringTokenizer 仅提取日、月或年信息,并在类似于此代码的SELECT 中使用它们? (以防我的第一个 - 也是更简单的 - 想法是不可能的。)

所以到目前为止,有两种可能的解决方案。我还需要知道哪个更快,因为访问的数据库位于具有大量数据的故障安全/关键系统(银行)中。

【问题讨论】:

自定义日期是什么意思?你能举一个你想要的具体例子吗(是你的数据库中的 start_date 和 end_date 时间戳)? 您的示例使用当前日期/时间。如果这就是你想要的,让 mysql 为你做,例如NOW()。如果没有,请告诉我们您所追求的日期范围。 还要注意YEAR(myfield)是字段上的函数,mysql将无法使用索引快速获取数据。 它必须选择已经插入的日期,然后将要生成的表格填充到 PDF 中(我使用的是 iText)。我希望插入一个过去的日期,这样我的所有表格都将根据相同的示例。 关于第二个想法,我在想: SELECT * FROM table WHERE (YEAR(st_year)=?) AND (MONTH(st_month)=?) AND (DAY(st_day)=?) ;(...)etc(...) 字符串斜线、数据、st_year、st_month、st_day; StringTokenizer st = new StringTokenizer(斜线, "/");数据 = st.nextToken();天=数据; (...)等(...) 【参考方案1】:

第一种方法更好,因为您可以使用日期函数来操作值。

private void executeQuery(java.util.Date startDate, java.util.Date endDate) throws SQLException 
  Connection conn = null;
  PreparedStatement pstmt = null;
  try 
    conn = getConnection();
    String query = "select ... between ? and ?";
    pstmt = conn.prepareStatement(query);
    pstmt.setDate(1, new java.sql.Date(startDate.getTime()));
    pstmt.setDate(2, new java.sql.Date(endDate.getTime()));
    //return results
    ResultSet rs = pstmt.executeQuery();
    rs.last();
    System.out.println("last row = " + rs.getRow());
   finally 
    if (pstmt != null) 
      pstmt.close();
    
    if (conn != null) 
      conn.close();
    
  

【讨论】:

好的。谢谢。现在,日期字段的值(即,我必须输入日期,而不是使用当前日期)如何提供 PreparedStatement?就像在“pStmt.setString(1,myString)”中一样。 这就是我所需要的! :-D 谢谢

以上是关于插入和选择日期 (Java) (MySQL)的主要内容,如果未能解决你的问题,请参考以下文章

按日期范围选择数据并换行

PHP mysql插入日期格式

将日期和时间插入Mysql

在 Jquery 日期选择器中解释错误的月份,从 MySQL 中提取数据

从日期选择器到 mysql/php 的奇怪日期格式

幻灯片如何自动更新日期与时间