【问题标题】:Use of SUBSTRING function in WHERE clause using SQL Server 2008 [duplicate]使用 SQL Server 2008 在 WHERE 子句中使用 SUBSTRING 函数 [重复]
【发布时间】:2015-07-09 12:22:53
【问题描述】:

我正在使用 SQL Server 2008 和 Microsoft Visual Studio 2008。我有一个数据库表,其中包含数据和时间列作为字符串。在该列中,我有日期和时间。在我的应用程序中,我必须选择日期并基于该日期。我必须从表中获取数据并显示数据网格视图控件。

所以我只想比较日期。

我参考了以下链接。但这对我不起作用。

Use of SUBSTRING function in where clause

我试过这个查询,但它不适合我。

SELECT * 
FROM tAerator 
WHERE SUBSTRING(fldAEdnt, 0, 10) = '07-07-2015' 

你能告诉我解决这个问题的方法吗?

感谢和问候

【问题讨论】:

  • 相关:stackoverflow.com/questions/113045/… -- 此外,为什么要将时间戳存储为 varchar?
  • 会发生什么?你有错误吗?
  • 很好的答案,但真正的问题不在这里。为什么你允许将日期存储为字符串?

标签: c# database


【解决方案1】:

试试这个

SELECT * FROM tAerator WHERE Convert(date,fldAEdnt)='2015-07-07'

【讨论】:

    【解决方案2】:
    SELECT * FROM tAerator WHERE SUBSTRING(fldAEdnt,1,10)='07-07-2015'
    

    将0改为1,因为在sql server中字符串开始索引为1

    【讨论】:

    • 您应该添加您更改的内容,因为乍一看它看起来完全一样。
    • @SujiD 没问题。但我们实际上不应该将日期+时间作为字符串存储在数据库中。我猜你正面临一些旧数据库。
    • @SujiD 如果有帮助,请采纳~
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多