【问题标题】:Mysql Datetime save TimeMysql Datetime 保存时间
【发布时间】:2014-04-28 14:56:35
【问题描述】:

这是场景:

我有一个表格:

|入住时间 |

|退房时间|

E.G 我做:

入住 = 15:30

退房 = 16:30

问题:

  1. 如何将时间存储在“日期时间”样式的 mysql 表中 (YY-MM-DD 10:45:48)

这行得通吗?:

Date datum = new Date();
//today declared as today
 datum.setDay(today);
 datum.setMonth(today);
 datum.setYear(today);

 datum.setMinute(30);
 datum.setHour(15);

然后“插入日期='日期'”

第二个:

如何通过MYSQL删除Time小于当前的行:

这行得通吗?

DELETE FROM adminLoginLog WHERE `date` > NOW() );

注意我使用的是 MysqlI

【问题讨论】:

  • 您是手动构建SQL语句,还是使用JDBC的PreparedStatement接口? PreparedStatements 是通过 Connection 对象的 prepareStatement 方法创建的。请参阅:Using Prepared Statements 了解更多信息。
  • 我问的原因是因为PrepareStatement有基于DB驱动向服务器发送各种数据类型的方法。

标签: java php mysql


【解决方案1】:
  1. 在 Java 中,使用 java.sql.Timestamp 存储字段的日期和时间。此外,使用Calendar 对象构建您的Date,不要直接更新java.util.Date 中的字段。请注意,使用new Date() 会自动创建一个带有当前日期和时间的java.util.Date,无需做任何特别的额外工作。

  2. 试试这个查询(假设这是你想要的):

    DELETE FROM adminLoginLog WHERE `date` BETWEEN CURDATE() AND NOW()
    

    如果您只需要当前时间(真的很奇怪),请使用CURTIME()

    DELETE FROM adminLoginLog WHERE `date` < CURTIME()
    

【讨论】:

  • 1.哦,伟大的作品 2.nd 我想检查该行的日期列是否低于当前日期时间
  • @user3110458 所以只有当前时间?因为date 名称似乎同时存储了datetime
  • ...假设这是 java.util.Date 而不是 java.sql.Date 有点冒昧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多