【发布时间】:2021-01-19 06:27:31
【问题描述】:
我想寻求帮助,因为由于某种原因,带有 BETWEEN 的 SQL 子句对我不起作用 - 我得到 0 个结果。
插入记录时,我这样存储日期:
..
commandObject.Parameters.Add("date", c.Found.Date);
我遇到的问题是这永远行不通:
commandObject.Parameters.Add("from", dateTimePicker_FROM.Value.Date.ToShortDateString());
commandObject.Parameters.Add("to", dateTimePicker_TO.Value.Date.ToShortDateString());
commandObject.CommandText = "Select * from Persons WHERE Date BETWEEN @from AND @to";
其他选择等工作正常。
【问题讨论】:
-
你能告诉我们
c.Date.ToShortDateString()的输出吗? -
你能更准确地解释一下
doesn't work吗?并提供一些样本数据?我的第一个盲猜,虽然来自ToShortDateString- 为什么在你的数据库中使用字符串而不是日期时间?他们有不同的比较行为,你通常想要日期时间。 -
@TimBiegeleisen 当调试时,这将存储在参数中:{1/19/2021 12:00:00 AM}
-
使用这个 CONVERT(datetime, @from)
-
在 MySQL 中,日期必须是 'y-m-d',日期时间必须是 'y-m-d h:i:s'