【问题标题】:Store only date without time in a database在数据库中仅存储没有时间的日期
【发布时间】:2014-01-19 15:45:55
【问题描述】:

如何将 date only 从 Java 发送到具有 DATE 数据类型列的 MySQL 表中?我可以通过将字符串保存到数据库中来实现,但是有没有更好的方法?

我正在研究没有时间和超时的员工出勤。所以我只需要存储日期。

【问题讨论】:

  • @nhgrif:是的,你是对的。看here

标签: java mysql database netbeans


【解决方案1】:

要存储仅日期,您需要DATE 数据类型。


MySQL 有三种数据类型用于存储日期和时间值:

  • DATE 用于具有 date 部分但 没有 time 部分的值。 MySQL 以 'YYYY-MM-DD' 格式检索和显示 DATE 值。
  • DATETIME 类型用于包含 both datetime 部分的值。 MySQL 以 'YYYY-MM-DD hh:mm:ss' 格式检索和显示 DATETIME 值。
  • TIMESTAMP 数据类型用于包含 datetime 部分的值。 TIMESTAMP 的范围为 '1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC。


更多细节可以在官方 MySQL 参考手册中找到:
The DATE, DATETIME, and TIMESTAMP Types

【讨论】:

  • 我知道 MySQL 中的 Data 数据类型,但是如何从 Java 发送值,对不起,如果我不够清楚,但我想知道如何从 Java 获取当前日期以存储在 (Date) MySQL
  • 为什么不用服务器的日期:CURRENT_DATE()
  • 这有帮助,谢谢过去 2 小时我一直在努力寻找 java 数据类型。我使用 CURRENT_DATE() 来存储和检索我使用 WHERE DATE(date) = CURRENT_DATE() [从另一篇文章中找到]
【解决方案2】:
  SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); 
  String input = "2014-01-19";  // capture the value you pass from attendance application
  Date t; 
  try { 
      t = ft.parse(input); 
      System.out.println(t); 
  } catch (ParseException e) { 
      System.out.println("Unparseable using " + ft); 
  }

【讨论】:

  • 下次您可以提供一个基本解释,以便新手知道您的实际解决方案是什么
猜你喜欢
  • 2021-09-27
  • 2017-05-31
  • 1970-01-01
  • 2014-01-16
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
相关资源
最近更新 更多