Date类型的变量存入mysql数据库再取出后与原值不想等

如题所述

首先我们必须先明确,数据库只负责存储,也就是说存入和取出的肯定是相同的东西。
那么,如果出现取出与原值不等的情况,可能会是你存入的并不是你所想要存入的数据。
这有很多方面的原因会造成这种情况,比如,在php中,如果你获取一个date('Y-m-d H:i:s'),然后将这个值保存的数据库中,则这个值是和PHP设置的时区有关,set_default_time_zone的值。这个值可以在php.ini文件中设置,或者在程序中直接设置。
还有一种情况,就是你将一个表达时间的字符串,保存的数据库的date类型字段中,如果你的字符串不是标准格式,则mysql会自动进行转换,这时会产生与原时间字符串不同的情况。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-04
日期类型有很多中,像数据库了的字段属性就有date,datetime,Timestamp
date保存的就是只有日期没有时分秒
datetime保存的格式是年月分,时分秒
timestamp保存的是当前系统的时间

你要保存那种格式,就按你的需求去进行日期格式转化,使用private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");本回答被提问者采纳
第2个回答  2011-08-02
别用Date类型,它好象只保存年月日,用Timestamp精确到毫秒。

Date类型的变量存入mysql数据库再取出后与原值不想等
那么,如果出现取出与原值不等的情况,可能会是你存入的并不是你所想要存入的数据。这有很多方面的原因会造成这种情况,比如,在php中,如果你获取一个date('Y-m-d H:i:s'),然后将这个值保存的数据库中,则这个值是和PHP设置的时区有关,set_default_time_zone的值。这个值可以在php.ini文件中...

Data truncated for column 'Prices' at row 1怎么解决?
三、可能是在altertable更改列设置时,影响原来存入的值,这时可将原值update为需要的类型值或删除这些原值再altertable。四、检查是不是数据类型的长度不一致导致的。这个比较麻烦具体步骤如下:1、程序中检查日期的范围,当超出时给出提示或其他处理 2、找到mysql安装目录的my.ini 3、找到sql-mode=”ST...

MySQL入门门门?[第一篇](附Docker使用教程)
text长文本数据bigint等同于Java中的longfloat等同于Java中的floatdouble等同于Java中的doubledate短日期类型,只有年月日datetime长日期类型,包含年月日时分秒毫秒clob字符大对象,最多可以存储4G的字符串,clob是Character Large Object的缩写blob二进制大对象,用于存流媒体数据,插入时要使用IO流,blob是Binary Large Object...

java String类型和blob类型转换
如果保持数据库表结构不变的话,用 blob 也行,但你需要在读取和写入两头明确地指定相同的字符集,否则读取这个还原过程会得到不到期望的结果。只要我们用支持这种字符的字符集理论上来说,只要编码和解码的过程使用相同的字符集就不会失真,如果字符集本身不支持这个字符(比如你拿一个只有康熙字典中才有...

Data truncated for column 'Prices' at row 1怎么解决?
三、可能是在alter table更改列设置时,影响原来存入的值,这时可将原值update为需要的类型值或删除这些原值再alter table。四、检查是不是数据类型的长度不一致导致的。这个比较麻烦具体步骤如下:1、程序中检查日期的范围,当超出时给出提示或其他处理 2、找到mysql 安装目录的 my.ini 3、找到sql-mode...

相似回答
大家正在搜