在mysql中以字符串形式存储日期安全吗?

vshtjzan  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(512)

我必须允许我的用户从上一次更新中延迟24小时进行更新,因此,由于本例中的日期操作将在后端进行,但在web服务器上进行,我可以将javascript日期作为字符串存储在数据库中,当我必须计算两个日期之间的差异时,我可以从数据库中查询lastupdatedate并将其解析为js date对象,这样做安全吗?

kkbh8khc

kkbh8khc1#

在mysql中以字符串形式存储日期安全吗?
只要用于表示日期的格式是明确的(即,每个值都Map到一个唯一的日期),就安全了。
但是不使用适当的数据类型来存储值总是低效的。迟早,您会面临在数据库中进行一些日期计算的需要(排序、过滤、添加…):将日期存储为字符串将使此类操作更加复杂(开销因您选择的格式而异),而且效率要低得多(通常需要将所有字符串转换为日期,然后才能对其进行操作)。
另一方面,从一开始就使用适当的数据类型并不会使前端的事情变得更复杂,尤其是在mysql中。你只需要正确格式化你的字符串( 'YYYY-MM-DD HH:MI:SS' )在将它们传递到数据库之前,mysql会很高兴地将它们当作日期。

mdfafbf1

mdfafbf12#

是的,除非你的日期字符串是唯一的。可以为它指定unique子句。但是没有理由这么做,因为mysql提供了5种内置的日期/时间数据类型(date、datetime、timestamp、time、year(m))。不过,如果将日期保存为字符串,以后在以正确格式提取日期时可能会遇到问题。

相关问题