Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL转换日期时间错误_C#_Mysql_Sql - Fatal编程技术网

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,

你能告诉我这个问题哪里可能是错的吗?错误消息是:

函数参数列表中出现错误,无法识别“”无法分析 查询文本

  • 您对
    CONVERT
    的调用太多。您只需要2个:一个用于将日期列转换为
    varchar
    ,另一个用于将结果转换为
    datetime
    格式
  • 调用
    CONVERT(varchar,date)
    时,只传递2个参数,
    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))