【发布时间】:2019-07-16 04:23:48
【问题描述】:
我想运行这样的条件:
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 新手,如果有人能提供帮助,将不胜感激。
【问题讨论】:
-
MySql、T-SQL、phpmyadmin……你用什么? Microsoft SQL Server 还是 MySql?
-
如果您使用的是 MySql,那么您就不是在使用 T-SQL。 MySql的sql方言叫做MySql。 T-SQL 方言仅用于 Microsoft 的 SQL Server 和 Sybase。我不了解 MySql,但在 T-SQL 中
LIKE仅适用于字符串数据类型(char/nchar/varchar/nvarchar)。 -
不要在约会时使用
LIKE。不应在date/datetime值上使用字符串运算符。