如何在 PyMySQL 中编写使用当前系统时间的查询?
How can I write a query that uses the current system time in PyMySQL?
我正在尝试在 Python 中编写一个 SQL 语句,它将使用当前系统时间来查询数据库。
我的数据库有一个 date
类型的日期字段,所以我认为日期对象可以用于比较,但事实似乎并非如此。
我的声明目前是这样的:
current_time = datetime.datetime.now()
sql = "SELECT * FROM `table` WHERE `date`=current_time
但是失败了,告诉我我的 SQL 不正确。我不确定问题是出在 SQL、Python 还是两者都有,但我无法在网上找到任何示例,我已无能为力了。
也许使用数据库服务器时间会更好?如果他们在单机上,不会有时间差异,但你会避免时区和其他问题。
sql = "SELECT * FROM `table` WHERE `date`=curdate()";
如果一定要用Python的机器时间,就用.strftime("%d/%m/%y")
此外,在 date
字段中寻找正确的格式匹配!
在 MySQL 中,您有几种获取当前(服务器)时间的选择。
SELECT NOW()
是最明显的。它检索当前日期和时间。
SELECT CURDATE()
给你今天。这些将为您提供转换为字符串的日期/时间值。它看起来像 2017-02-22 20:18:22
代表 NOW()
和 2017-02-22 00:00:00
或者 2017-02-22
代表 CURDATE()
.
这是一篇关于 NOW()
and one on CURDATE()
的文章。
关于时区处理有很多话要说,但你没有问。暗示。使用 TIMESTAMP
数据类型和时区处理工作顺利。
如果您有一堆带有日期/时间戳的记录,请使用它来获取昨天的记录。
SELECT whatever
FROM table
WHERE datestamp >= CURDATE() - 1 DAY
AND datestamp < CURDATE()
这会获取从昨天午夜开始直到但不包括今天午夜的所有内容。
如果你想立即结束过去 24 小时内的所有内容,请使用此选项。
SELECT whatever
FROM table
WHERE datestamp >= NOW() - 1 DAY
日期运算很厉害
我正在尝试在 Python 中编写一个 SQL 语句,它将使用当前系统时间来查询数据库。
我的数据库有一个 date
类型的日期字段,所以我认为日期对象可以用于比较,但事实似乎并非如此。
我的声明目前是这样的:
current_time = datetime.datetime.now()
sql = "SELECT * FROM `table` WHERE `date`=current_time
但是失败了,告诉我我的 SQL 不正确。我不确定问题是出在 SQL、Python 还是两者都有,但我无法在网上找到任何示例,我已无能为力了。
也许使用数据库服务器时间会更好?如果他们在单机上,不会有时间差异,但你会避免时区和其他问题。
sql = "SELECT * FROM `table` WHERE `date`=curdate()";
如果一定要用Python的机器时间,就用.strftime("%d/%m/%y")
此外,在 date
字段中寻找正确的格式匹配!
在 MySQL 中,您有几种获取当前(服务器)时间的选择。
SELECT NOW()
是最明显的。它检索当前日期和时间。
SELECT CURDATE()
给你今天。这些将为您提供转换为字符串的日期/时间值。它看起来像 2017-02-22 20:18:22
代表 NOW()
和 2017-02-22 00:00:00
或者 2017-02-22
代表 CURDATE()
.
这是一篇关于 NOW()
and one on CURDATE()
的文章。
关于时区处理有很多话要说,但你没有问。暗示。使用 TIMESTAMP
数据类型和时区处理工作顺利。
如果您有一堆带有日期/时间戳的记录,请使用它来获取昨天的记录。
SELECT whatever
FROM table
WHERE datestamp >= CURDATE() - 1 DAY
AND datestamp < CURDATE()
这会获取从昨天午夜开始直到但不包括今天午夜的所有内容。
如果你想立即结束过去 24 小时内的所有内容,请使用此选项。
SELECT whatever
FROM table
WHERE datestamp >= NOW() - 1 DAY
日期运算很厉害