C# SQL转换日期时间错误
你能告诉我这个问题哪里可能是错的吗?错误消息是: 函数参数列表中出现错误,无法识别“”无法分析 查询文本C# SQL转换日期时间错误,c#,mysql,sql,C#,Mysql,Sql,你能告诉我这个问题哪里可能是错的吗?错误消息是: 函数参数列表中出现错误,无法识别“”无法分析 查询文本 您对CONVERT的调用太多。您只需要2个:一个用于将日期列转换为varchar,另一个用于将结果转换为datetime格式 调用CONVERT(varchar,date)时,只传递2个参数,103用于日期转换,而不是varchar转换 如果要使用今天的日期,请使用date(NOW()),就像我在下面所做的那样: 试试这个: SELECT dish_category.Cat_Name,
- 您对
的调用太多。您只需要2个:一个用于将日期列转换为CONVERT
,另一个用于将结果转换为varchar
格式datetime
- 调用
时,只传递2个参数,CONVERT(varchar,date)
用于日期转换,而不是103
转换varchar
- 如果要使用今天的日期,请使用
,就像我在下面所做的那样:date(NOW())
SELECT dish_category.Cat_Name, order_items.OI_Name, dish_management.D_Price, order_items.OI_Quantity, order_items.OI_Price, order_management.O_Time
FROM dish_category
INNER JOIN dish_management ON dish_category.Cat_ID = dish_management.Cat_ID
INNER JOIN order_items ON dish_management.D_ID = order_items.D_ID
INNER JOIN order_management ON order_items.O_ID = order_management.O_ID
WHERE order_management.O_Time = (CONVERT(DATETIME, CONVERT(DATETIME, CONVERT(VARCHAR, date, 103),103)) BETWEEN @DSStart_date AND @DSEnd_date)
显然,您正在为
CONVERT()
使用SQL Server语法,而不是MySQL语法
我不知道日期是什么,但我想到了这个版本的查询:
SELECT dish_category.Cat_Name, order_items.OI_Name, dish_management.D_Price,
order_items.OI_Quantity, order_items.OI_Price, order_management.O_Time
FROM dish_category INNER JOIN dish_management ON dish_category.Cat_ID = dish_management.Cat_ID
INNER JOIN order_items ON dish_management.D_ID = order_items.D_ID
INNER JOIN order_management ON order_items.O_ID = order_management.O_ID
WHERE (DATE(NOW()) BETWEEN @DSStart_date AND @DSEnd_date)
或者,更好的是:
SELECT c.Cat_Name, order_items.OI_Name, m.D_Price, oi.OI_Quantity,
oi.OI_Price, om.O_Time
FROM dish_category c INNER JOIN
dish_management m
ON c.Cat_ID = m.Cat_ID INNER JOIN
order_items oi
ON m.D_ID = oi.D_ID INNER JOIN
order_management om
ON oi.O_ID = om.O_ID
WHERE om.O_Time BETWEEN @DSStart_date AND @DSEnd_date
当然,您的代码还包含:
WHERE om.O_Time >= @DStart_date AND @DSEnd_Date;
我不知道这应该是做什么,卡在
where
子句中,介于列名和between
之间,现在它在函数参数列表中显示错误”)“无法识别”无法解析查询文本“您使用了我的最新更新吗?请注意,我更新了答案。是的,其中(CONVERT(DATETIME,CONVERT(varchar,date),103)介于@DSStart_date和@DSEnd_date)之间)当您编写CONVERT(varchar,date)
什么是date
?它是一个列吗?它来自哪里?我正在使用TableAdapter,从数据库中调用它作为“选择返回行”
(CONVERT(DATETIME, CONVERT(DATETIME, CONVERT(VARCHAR, date, 103),103))