Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在数据库中保存日期_Mysql_Sql - Fatal编程技术网

Mysql 在数据库中保存日期

Mysql 在数据库中保存日期,mysql,sql,Mysql,Sql,在数据库中保存日期时,我一直认为最好使用时间数函数来保存日期,因为它更准确,但我也看到过像2013-02-01这样保存日期的人 推荐哪一种?或者,在不同的情况下,您是否应该使用一个或另一个?我宁愿将日期保存为DATE而不是INT,因为: 可读性更强 它仍然是日期! P>无论如何,这仍然是你的选择,考虑这个, SELECT UNIX_TIMESTAMP(CURDATE()), CURDATE() 将导致 UNIX_TIMESTAMP(CURDATE()) CURDATE() 1359676

在数据库中保存日期时,我一直认为最好使用时间数函数来保存日期,因为它更准确,但我也看到过像2013-02-01这样保存日期的人

推荐哪一种?或者,在不同的情况下,您是否应该使用一个或另一个?

我宁愿将日期保存为DATE而不是INT,因为:

可读性更强 它仍然是日期! <> P>无论如何,这仍然是你的选择,考虑这个,

SELECT UNIX_TIMESTAMP(CURDATE()), CURDATE()
将导致

UNIX_TIMESTAMP(CURDATE())   CURDATE()
1359676800                  2013-02-01 00:00:00

始终保存为日期的文本表示形式,即YYYY-MM-DD。更易于人类阅读,并且不限于Unix时间戳整数的限制。您只能使用整数向前或向后移动很远。

在ISO 8601上进行标准化是保守的,而且比在Unix时代前后进行转换要容易得多

第二天的开始时间可能会受到小时偏移的影响,因此时区可能存在问题。在夏令时,一天的开始可能会受到影响。使用时间可能会消除这些问题的歧义,但也可能会出现问题,因为您没有按照预期效果正确地转换时间

由于UNIX时间纪元有一个时间组件,如果发送时间值并让数据库将其转换为日期,则可能会出现问题。数据库可以以你意想不到的方式翻译它。但是,如果您发送一个日期,数据库将按照您的话,存储该日期,而不考虑它认为该日期所在的时区,并返回确切的日期

现在,这种转换问题可能会发生,具体取决于如何获取SQL中包含的日期值。但是,这在您的代码中是一个问题,您可以预期数据库没有转换或更改您发送给它的值


我会坚持把它作为日期输入,因为它是可读的,它是一个日期,它不会有比时间更多的问题,即使问题发生在不同的情况下。

我会说,这确实是一个民意调查。但是如果你将它们存储为数字表示,你必须将其转换回日期来做任何有用的事情。也许你应该把所有的字符串数据保存为一个字节数组,不是吗?不管你用哪种方式保存它,都取决于你将如何处理这些数据。mysql有一个时间戳字段,它将保存年-月-日-小时-分-秒。这可以在PHP中转换为日期。我认为时间更好,因为数字需要很少的空间来保存