DateTime字符串通过MySQL DATE_FORMAT或DateTime.strftime

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (153)

我有一个函数,它使用从数据库查询返回的日期时间字符串。现在查询返回一个datetime对象。

我正在寻找的是创建我的日期时间字符串的首选方法。我还没有做任何性能分析,只是寻找以前的人们的经验。

提问于
用户回答回答于

如果你有一个datetime对象,可以把它作为一个datetime对象保存在你的代码中,从中提取你需要的任何信息。然后,当您真正需要实际字符串时,请使用strftime您希望的方式对其进行格式化。

>>> from datetime import datetime
>>> t = datetime.now()
>>> t
datetime.datetime(2019, 6, 24, 14, 23, 45, 835379)
>>> print(t.month)
6
>>> print(t.second)
45
>>> as_string = t.strftime("%B %d, %Y")
>>> print(as_string)
June 24, 2019
>>> as_another_string = t.strftime("%Y-%h-%d %H:%m")
>>> print(as_another_string)
2019-Jun-24 14:06

此页面显示您可以调用的各种格式代码,以便提取您希望在字符串中显示的日期/时间信息:

用户回答回答于

这取决于。

通常,数据库只是数据的存储库; 它不是格式化引擎。这意味着你应该期望获得类似的字符串"2019-06-24 13:47:24"或数字1561409293,并从那里处理它们。

但是,简单地DATE_FORMAT()在您的SELECT陈述中调用通常更为直接。当SELECT可以生成整个“报告”而无需进一步操作时,这尤其方便。

另一种决定方法......哪种方法需要更少的击键次数?或者编程错误的可能性最小?要么...

你说“使用从数据库查询返回的日期时间字符串” - 但它会用它做什么?如果它将以多种方式操纵它,那么客户端“对象”听起来就像是更好的方法。如果您只是显示日期时间,那么DATE_FORMAT()可能会更好。

没有明显的性能差异。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励