【发布时间】:2021-11-22 01:25:25
【问题描述】:
我正在尝试在我的列中选择与日期时间匹配的行。我有一个包含 mDTS 设置为 DATETIME 的表(没有大括号)。 我的桌子看起来像这样:
| mID | mDTS | mDTE |
|---|---|---|
| 1 | 10/08/2021 10:41:47 | 11/08/2021 10:41:47 |
| 2 | 12/08/2021 10:42:34 | 13/08/2021 10:42:34 |
CREATE TABLE tb_cyc (
mID int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID cycle',
mDTS datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Data inizio ciclo',
mDTE datetime DEFAULT '0000-00-00 00:00:00' COMMENT 'Data fine ciclo',
PRIMARY KEY (mID)
)
我正在尝试运行以下查询,但它返回一个空集。
SELECT * FROM tb_cyc WHERE mDTS = '12/08/2021 10:42:34'
我也试过了:
SELECT * FROM tb_cyc WHERE mDTS LIKE '12/08/2021 10:42:34'
和
SELECT * FROM tb_cyc WHERE mDTS = '12/08/2021 %'
但这些似乎都不起作用。 我做错了什么?
【问题讨论】:
-
您似乎将
datetime存储为文本数据类型,您需要使用字符串到日期函数,如STR_TO_DATE -
请编辑您的问题以显示(作为文本,而不是图像)
show create table tb_cyc的输出 -
我已更新问题以显示创建表@ysth
-
您使用的是正确的日期时间数据类型。 mySQl 是否真的返回像
10/08/2021 10:41:47这样的日期? -
@alessandro.todisco 不,实际上没有。无论您使用什么来显示结果,都是以这种方式格式化日期。 mysql 期望并返回 ISO 8601 格式的日期:'2021-10-08 10:41:47'