繁体   English   中英

处理数据库日期/时间转换的“正确”方法是什么?

[英]What is the “correct” way for handling date/time conversions for database?

我有一个PHP网站,该网站以人类形式(例如2012-10-18或类似形式)从用户那里获取日期,并将其存储在数据库中。 它们在数据库中存储为unix时间戳。 我可以使用PHP函数进行转换,而仅存储/检索时间戳,也可以使用SQL /数据库函数在查询中进行转换,并存储/检索格式化的日期。
是否有理由更喜欢一种方法? 这些是更“正确的”(关注点分离等)之一吗?

在数据库中使用日期。 数据库能够进行偶数计算,因此没有理由在您的PHP脚本中进行此类处理。 也许,如果您不想这样做,可能是一个有效的参数,这是因为查询中的逻辑使查询变得更加复杂。

恕我直言,这两种方法在性能方面没有区别,但是使用PHP转换/格式化sql-dates可以提供更简洁的代码和本地化功能。

我发现尝试处理用户时区在SQL中很复杂(至少在SQLite中,不确定其他数据库的日期函数是否具有更好的时区支持),因此PHP似乎是处理此时区的更好位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM