gpt4 book ai didi

mysql - DATE_FORMAT 与字符串和数字进行比较

转载 作者:行者123 更新时间:2023-11-29 09:38:37 26 4
gpt4 key购买 nike

我相信我是一个熟练的 mysql 用户,但显然我不是。

我以为 mysql 会在比较之前进行转换,但是这个查询让我感到困惑:

SELECT
DATE_FORMAT('2019-07-19 12:05:12', '%H') >= '11' AND DATE_FORMAT('2019-07-19 12:05:12', '%H') <= '7' AS 'str',
DATE_FORMAT('2019-07-19 12:05:12', '%H') >= 11 AND DATE_FORMAT('2019-07-19 12:05:12', '%H') <= 7 AS 'num';

str num
------ --------
1 0

那么比较到底是如何进行的呢?什么被转换到什么?

最佳答案

在第一种情况下,实际上根本没有任何转换,因为 DATE_FORMAT 返回一个字符串。进行的比较是:

SELECT
'12' >= '11' AND '12' <= '7' AS str

确实如此,因为文本 '12' 按字典顺序大于 '11''12' 也比 '7' “小于”,因为前者以 1 开头。

在第二种情况下,不等式的右侧是整数,MySQL 将左侧的文本数字转换为整数来进行比较:

SELECT
12 >= 11 AND 12 <= 7

这是错误的,这是使用实际数字的这些不等式的预期行为。

关于mysql - DATE_FORMAT 与字符串和数字进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57111272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com