mysql 在数据库中设置时间

mysql 在数据库中设置时间,第1张

1、非要用datetime的话就不能用default而要通过trigger来实现

2、在插入时value用now()函数、或者自行取运行时间

3、字段类型改变为:

datecreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

datemodified timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

但是其实不可行,因为一个表只能有一个CURRENT_TIMESTAMP,但你有三个字段。

所以当有多个时间可能还是得结合方式2与方式3来综合处理。当然全都用方式2也就不会提出这种问题了。

java中有date和datetime,mysql中也有date和datetime,这里我们来说说mysql中的date和datetime。

1 mysql中的date和datetime

1.1 DATETIME

类型可用于需要同时包含日期和时间信息的值。MySQL 以:

‘YYYY-MM-DD HH:MM:SS’

格式检索与显示 DATETIME 类型。支持的范围是:

‘1000-01-01 00:00:00’

‘9999-12-31 23:59:59’。

(“支持”的含义是,尽管更早的值可能工作,但不能保证他们均可以。)

1.2 DATE

类型可用于需要一个日期值而不需要时间部分时。MySQL 以

‘YYYY-MM-DD’

格式检索与显示DATE值。支持的范围则是

‘1000-01-01’

‘9999-12-31’。

2 与java数据的交互

能看出来mysql中的date和datetime区别还是挺大的,date没有保存时间。但是java中的date(java.util.Date)记录的还是挺细的,日期和时间都可以记下来,那么现在问题来了,如果想在mysql中存储日期和时间,也就是用datetime,而在数据中应该如何对应呢?

我使用hibernate测了一下,发现当把mysql数据库中设置了datetime,反向工程生成的hbm.xml文件中,使用的是timestamp,如下:

<property name="Publishdate" column="publishdate" type="timestamp" not-null="false" length="10" />1

反向生成java的pojo时,生成的还是Date。

由此可见对于mysql中datetime,与java中的date,如果要使二者正确交互,中间要使用timestamp。

如果要在JAVA中直接插入MySql的datetime类型,则可以使用:

Date date = new Date()

Timestamp timeStamp = new Timestamp(date.getTime())12

再用setTimestamp()设置数据库中的“日期+时间”。

这样放入数据库的就是“yyyy-mm-dd hh:mm:ss”格式的数据。

注意,mysql中如果使用date而不是datetime是保存不下“日期+时间”的,只能保存“时间”。

MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。、向mysql插入指定时间步骤有:1:mysql在插入时间的时候 要进行格式转换 例如: insert into users(birth) values(STR_TO_DATE('" + alarmDefi.getEndTime()+ "','%Y-%m-%d %k:%i:%s')) 这样就可插入:年-月-日 时:分:秒


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7247810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存