我必须允许我的用户在上一次更新延迟24小时的情况下进行更新,因此,因为在本例中日期操作将在后端进行,但在web服务器中,我可以将Javascript date作为字符串存储在数据库中,当我必须计算两个日期之间的差异时,我可以从数据库中查询lastUpdateDate并将其解析为JS date对象,这样做安全吗?
将日期作为字符串存储在MySQL中安全吗?
只要用来表示日期的格式是明确的(也就是说,每个值映射到唯一的日期),它就是安全的。
但是不使用正确的数据类型来存储值总是效率低下的。 迟早,您将面临需要在数据库中进行一些日期计算(排序,筛选,添加。。。):将日期存储为字符串将使这种操作变得更加复杂(开销取决于您选择的格式),并且效率更低(通常需要在对它们进行操作之前将所有字符串转换为日期)。
另一方面,从一开始就使用正确的数据类型并不会使前端的事情变得更加复杂--尤其是在MySQL中。 您只需在将字符串传递给数据库之前对其进行适当格式化('yyyy-MM-dd hh:mi:ss'
),MySQL将很高兴地将它们视为日期。
它是唯一的,除非您的日期字符串是唯一的。 可以为其指定UNIQUE子句。 但是没有理由这么做,因为MySql提供了5种内置的日期/时间数据类型(日期,日期时间,时间戳,时间,年份(M))。 但是,如果将日期保存为字符串,以后在以正确的格式提取日期时可能会遇到问题。