gpt4 book ai didi

mysql - T-SQL 中 DATE 类型变量的 LIKE 运算符

转载 作者:行者123 更新时间:2023-11-29 05:02:51 25 4
gpt4 key购买 nike

我想运行这样的条件:

SELECT COUNT(*) FROM table WHERE date_time LIKE '2019-02-02';

我试过将它转换成 T-SQL 是这样的:

SELECT COUNT(*) FROM table WHERE date_time LIKE [dynamicDateVariable];

那个日期有多少行的结果是正确的?

现在我尝试将它放在 IF 语句中,如下所示:

IF (SELECT COUNT(*) FROM funnel_logs 
WHERE date_time LIKE converted_date) = '1' THEN
//... run code
ELSE
//... run this code
END IF;

我的目标是只获得一 (1) 行计数以运行代码 但问题是即使我在该日期有一 (1) 行计数它仍然继续执行 ELSE 语句并运行运行此代码

注意:我使用 xampp 和 phpmyadmin 来运行它,并且我在触发器上运行这个过程。我试过使用 CONVERT(VARCHAR, [dynamicDateVariable], 126) LIKE [dynamicDateVariable] 但它仍然不起作用。还有一个 DATEPART(),但有人说它不是很重要,我认为有一个 [dynamicDateVariable] 会处理太多工作。

我错过了什么吗?我是 T-SQL 的新手,所以如果有人能提供帮助,我将不胜感激。

最佳答案

原因是您不能以这种方式对 DateTime 执行 LIKE 运算符,为此您必须考虑变通方法。

  • 将您的 converted_date 日期拆分为年、月和日(您的日期想要执行 LIKE with)
  • 使用DatePart 函数分别得到年、月、日 Then进行比较。

以下是我自己在SqlServer上测试的代码:

declare @var int 
set @var = (SELECT
COUNT(*) FROM t
WHERE --ddate LIKE '2019-02-22%')
(DATEPART(yy, ddate) = 2019) AND
DATEPART(mm, ddate) = 02 AND
DATEPART(dd, ddate) = 22)
IF (@var = 1)
begin
select 1
end
ELSE
begin
select 2
END

关于mysql - T-SQL 中 DATE 类型变量的 LIKE 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54820906/

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