首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将date对象以HH:MM格式存储到MySql中?

如何将date对象以HH:MM格式存储到MySql中?
EN

Stack Overflow用户
提问于 2014-02-21 01:47:35
回答 2查看 1.6K关注 0票数 1

我正在尝试从字符串示例13:30(HH:MM)创建一个date对象(格式: HH:MM)。我想将HH:MM保存在MySql表中,但是下面的代码在列中输入了一些随机值(例如:'6828-00-00 00:00:00')。如何在Mysql中以HH:MM格式存储日期值?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Date date = null; 
String afternoon = "13" +":" +"30";
String time = afternoon;


try {                               
 date = new SimpleDateFormat("HH:mm").parse(time);
}
catch (ParseException e) {
    e.printStackTrace();
}

long d = date.getTime();
java.sql.Date sqlDate = new java.sql.Date(d);

 String sql3 = "CREATE TABLE IF NOT EXISTS DateTime"+
                       "(UniqueBusID VARCHAR(255) not NULL, " +
                       " Timenings DATETIME DEFAULT NULL ,"+
                       " PRIMARY KEY ( UniqueBusID ))";

stmt.executeUpdate(sql3);
stmt.executeUpdate("INSERT INTO DateTime " + "VALUES ('Test3','"+sqlDate.getTime()+"')");
EN

回答 2

Stack Overflow用户

发布于 2014-02-21 02:07:10

编辑

您必须使用java.sql.Timestamp而不是java.sql.Date。从javadoc开始,

“为了符合SQL DATE的定义,必须通过在与java.sql.Date实例关联的特定时区中将小时、分钟、秒和毫秒设置为零来‘规范化’该实例包装的毫秒值。”

所以只需替换这一行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java.sql.Date sqlDate = new java.sql.Date(d);

使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java.sql.Timestamp sqlTime = new Timestamp(d);

您做得很好,除了您用来将String解析为Date的模式,即HH:mm,这是错误的。

格式正确:H:mm (H:0-23;h:1-12)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try {                               
 date = new SimpleDateFormat("H:mm").parse(time);
}

下面是Date and Time Patterns的参考资料

票数 1
EN

Stack Overflow用户

发布于 2014-02-21 02:05:35

我很惊讶它插入了'6828-00-00 00:00:00‘:-)

这里有四个问题。

首先,当您设置SimpleDateFormat时,您正在创建一个java对象Date。Java日期从1970年1月1日开始,因此如果只设置小时和分钟,格式化程序将假定所有其他字段为零(而不是今天),因此

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
System.out.println(new SimpleDateFormat("HH:mm").parse("13:30")); // returns Thu Jan 01 13:30:00 BRT 1970

2但是,您调用了getTime()方法,该方法返回自1970年1月1日以来的millis

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
System.out.println(new SimpleDateFormat("HH:mm").parse("13:30").getTime()); //59400000

3然后,您已经尝试将这个数字推入MySQL。MySQL datetime需要以下格式的字符串

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
YYYY-MM-DD HH:MM:SS 

(参见https://dev.mysql.com/doc/refman/5.0/en/datetime.html)

由于MySQL是一个非常友好的数据库;-)它尝试将59400000转换为这种格式,这显然

mysql>插入到d个值(59400000);查询正常,1行受影响(0.04秒)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> select * from d;
+---------------------+
| y                   |
+---------------------+
| 5940-00-00 00:00:00 |
+---------------------+
1 row in set (0.08 sec)

4当然,您可以将您的SimpleDateFormat调整为MySQL预期的日期格式,但是您在INSERT查询中连接字符串,出于安全原因,这不是一个好主意,而且效率也不高。相反,您应该使用PreparedStatement并设置Date对象(而不是millis)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21923601

复制
相关文章
将JavaScript Date对象转换成yyyy-MM-dd HH:mm:ss格式字符串的方法
第一种可以马上想到的是使用Date对象的api方法,获得年份,月份,天,小时,分钟和秒数,就可以拼出来。从Date.prototype.toISOString方法稍微改造就可以了:
用户3579639
2018/10/19
2.3K0
在jsp页面将Date类型的日期显示成”yyyy-MM-dd HH:mm:ss”格式
头部加上:<%@ taglib prefix=”fmt” uri=”http://java.sun.com/jsp/jstl/fmt” %> 内容中使用:<fmt:formatDate value=”${post.postDate }” pattern=”yyyy-MM-dd HH:mm:ss”/>
全栈程序员站长
2022/07/01
1.5K0
js获取当前时间 格式yyyy-MM-dd HH:MM:SS
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
DencyCheng
2019/10/25
8.7K0
JAVA 最简单获取系统时间代码 LocalDateTime( 以yyyy-MM-dd HH:mm:ss.SSS格式显示)
当前时间为:2018-11-27 10:41:47 当前时间为:2018-11-27 10:41:47.392
崔笑颜
2020/06/08
2.9K0
js将日期格式转换为YYYY-MM-DD HH:MM:SS
1、百度不少js将日期格式转换为YYYY-MM-DD HH:MM:SS 。可是都略显复杂,所以这里总结了一下,自己找到的,方便自己学习和使用。
别先生
2018/07/31
5.2K0
js将日期格式转换为YYYY-MM-DD HH:MM:SS
js获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS”
用于获取当前日期字符串 /** * 获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS” * @return {} */ getNowFormatDate : function () { var date = new Date(); var seperator1 = "-"; var seperator2 = ":"; var month = date.getMonth() + 1; var strDa
河岸飞流
2019/08/09
5.9K0
YYYY-mm-dd HH:MM:SS
备忘:YYYY-mm-dd HH:MM:SS部分解释   d               月中的某一天。一位数的日期没有前导零。     dd             月中的某一天。一位数的日期有一个前导零。     ddd           周中某天的缩写名称,在   AbbreviatedDayNames   中定义。     dddd         周中某天的完整名称,在   DayNames   中定义。     M               月份数字。一位数的月份没有前导零。     MM 
跟着阿笨一起玩NET
2018/09/18
2.4K0
js获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS”
function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var seperator2 = ":"; var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } i
ydymz
2018/09/10
3.7K0
SAP MM以ALV格式显示采购报表
报表以Hierarchy的格式显示结果,对用户很不友好。一个正常的SAP用户都不喜欢这样的报表格式,不理解SAP系统的开发者和设计者们为啥觉得这种格式能堪使用。。。
SAP虾客
2023/07/04
2780
Js中Date对象
JavaScript的Date对象是用于处理日期和时间的全局对象,Date对象基于Unix Time Stamp,即自1970年1月1日UTC起经过的毫秒数。
WindRunnerMax
2020/10/26
21.3K0
如何将WordPress远程附件存储到腾讯云对象存储COS上
WordPress 是使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站,也可以把 WordPress 当作一个内容管理系统(CMS)来使用。
沈唁
2020/01/17
4.6K0
如何将WordPress远程附件存储到腾讯云对象存储COS上
vue 时间戳转换成yyyy-MM-dd hh:mm[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/01
1.3K0
from_unixtime函数类型_localtime_r函数
Unix时间戳(Unix timestamp),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。
全栈程序员站长
2022/09/20
1.6K0
【mysql】日期与时间类型
YEAR类型用来表示年份,在所有的日期时间类型中所占用的存储空间最小,只需要1个字节的存储空间。
兮动人
2022/03/12
4.2K0
MySQL操作之数据类型
MySQL提供了5种数据类型:整数类型、浮点数类型、定点数类型、日期和时间类型、字符串类型和二进制类型。
ha_lydms
2023/08/09
2340
MySQL操作之数据类型
将 Date对象 转化为指定格式详解 —— 关于Date对象那些事(番外)
获取当前日期时间,我们知道通过方法 new Date() 就可以得到,但是获取到是一个标准格式时间 Fri Jan 18 2019 13:56:47 GMT+0800 (中国标准时间)。但通常我们更渴望得到 2019-01-18 13:56:47 或者 2019/01/18 13:56:47 这种格式。
celineWong7
2020/11/05
2.5K0
freemarker 将后台传来的为“Tue Jan 06 16:00:50 CST 1970” 日期格式,格式化为yyyy-MM-dd HH:mm:ss
代码是在freemraker模板中写的,master是后台传来的对象,executeAt是对象中的字段,字段的类型是date
全栈程序员站长
2022/08/05
1.5K0
企业面试题: 动态打印 yyyy-mm-dd hh:mm:ss
友情提示:功能实现的方法并不唯一,切勿死记硬背,一定要理解!做程序员多动手动脑总不会有坏处。欢迎各位小伙伴提出自己的解决办法,集思广益,大家一同进步~
舒克
2019/08/09
5650
点击加载更多

相似问题

以HH:MM格式从MySQL检索时间

30

如何将/Date(1365715800000)/格式转换为HH:MM:SS

52

时间戳格式dd/mm/yyyy hh:mm:ss到yyyy-mm-dd hh:mm:ss - MySQL

10

如何将"MM/dd/yy hh:mm:ss tt“格式的Date对象转换为"dd/MM/yy”格式的DateObject

21

如何在Java中以所需的格式( MM/DD/YYYY HH:MM:SS AM )创建SQL date对象?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文