我有一个数据库,其中的时间条目格式如下:
2018-11-05T08:58:00Z
我正在尝试生成SQL查询,以将“ now()”与数据库中的时间进行比较,以确定要返回的行。
我正在努力将本地时间(now())“转换”为等效的时间格式,以便可以对数据库值使用<或>操作。
此外,我不确定问题是否有两部分。上面的时间示例不在MySQL的“ Datetime”字段中,而是简单地存储为TEXT,让我怀疑我首先需要将DB条目“转换”为另一种格式?
答案 0 :(得分:0)
检查此:
import time
time = time.strftime('%Y-%m-%dT%H:%M:%SZ')
print(time)
答案 1 :(得分:0)
以下使用datetime模块的代码对我有用(在Python 3.6中测试):
import datetime
value = "2018-11-05T08:58:00Z"
dt = datetime.datetime.strptime(value, "%Y-%m-%dT%H:%M:%SZ")
# Result is: datetime.datetime(2018, 11, 5, 8, 58)
这会将您的字符串值转换为datetime
实例,然后您可以将其与now()
进行比较。创建的值应为 naive (表示它们没有相关的时区信息)。
但是,如果您确定自己的now()
不是UTC(又称祖鲁时间),则可能需要进行转换。例如,如果您使用的是Django的timezone.now()
,而您配置的时区不是UTC,则可能会发生这种情况。在这种情况下,我可能将now()
的结果转换为UTC,所以您只需要转换一个值。 pytz module可以轻松处理这种事情。