【问题标题】:datetimepicker from one month to another monthdatetimepicker 从一个月到另一个月
【发布时间】:2014-08-02 13:24:59
【问题描述】:
SELECT * 
FROM   itemswork 
WHERE  e_name = '" + comboBox1.Text + "' 
       AND i_start_date BETWEEN '" + dateTimePicker1.Text + "' AND 
                                '" + dateTimePicker2.Text + "' 

以上是我的sql查询。我在 datetimepicker 中遇到问题。当我要求日历明智时(即从 2014 年 7 月 10 日到 2014 年 7 月 20 日)它可以工作,但是当日期从一个日历月重叠到另一个日历月时,例如 2014 年 6 月 15 日到 2014 年 7 月 31 日它不显示列表。

【问题讨论】:

  • 我怀疑 BETWEEN 子句是在比较字符串数据而不是日期值。 i_start_date 的数据类型是什么?而且,您能否提供 dateTimePicker1.Text 和 dateTimePicker2.Text 的示例值(确切的文本值)?
  • 你的 SQL 语句可以作为一个例子来展示你的问题。但是,如果这将是生产代码,它很容易受到SQL injection 的攻击。
  • i_start_date 在 varchar 中

标签: sql-server datetime datetimepicker monthcalendar


【解决方案1】:

试试这个。假设 i_start_date 的数据类型是 DATETIME 我们需要添加一天,如果数据类型是 DATE 则不要添加最后一行所示的日期。

SELECT * 
FROM   itemswork 
WHERE  e_name = '" + comboBox1.Text + "' 
       AND i_start_date BETWEEN CONVERT(DATETIME, '" + dateTimePicker1.Text + "') AND DATEADD(d,1,CONVERT(DATETIME, '" + dateTimePicker2.Text + "')) 

【讨论】:

  • 现在显示此错误,当我将您的编码粘贴到我的查询中时............“将 varchar 数据类型转换为 datetime 数据类型导致输出范围值。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
  • 1970-01-01
相关资源
最近更新 更多