【问题标题】:mssql 2012 how display specific valuemssql 2012 如何显示特定值
【发布时间】:2014-09-03 07:14:31
【问题描述】:

我有疑问

SELECT DATEDIFF(day,
                    CONVERT(char(10), GetDate(),101),
                    CONVERT(char(10), fieldname,101))
from tablename
where  isdate(fieldname)=1

查询的输出是

我如何才能从结果中只显示像 6 这样的值???

【问题讨论】:

    标签: sql sql-server sql-server-2012


    【解决方案1】:
    SELECT DATEDIFF(day, CONVERT(char(10), GetDate(),101), CONVERT(char(10), fieldname,101))
    FROM lablename
    WHERE isdate(fieldname)=1
    AND DATEDIFF(day, CONVERT(char(10), GetDate(),101), CONVERT(char(10), fieldname,101)) = 6
    

    编辑 1

    SELECT * FROM 
    (    SELECT DATEDIFF(day, CONVERT(char(10), GetDate(),101), CONVERT(char(10), fieldname,101)) AS DateDiff
        FROM lablename
        WHERE isdate(fieldname)=1
    ) A 
    WHERE DateDiff = 6
    

    【讨论】:

    • 我试试这个,但现在我出错了“将 varchar 数据类型转换为 datetime 数据类型导致值超出范围”
    • 已更新,再试一次,当答案不正确时也不要将答案标记为已接受,它会阻止其他人帮助你,因为他们认为这已经解决了。
    • 我尝试了您给我的第二个查询,但我遇到了同样的错误“将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。”我该如何解决这个错误???
    • SELECT DATEDIFF(day, CONVERT(char(10), GetDate(),101), CONVERT(char(10), fieldname,101)) AS DateDiff FROM lablename WHERE isdate(fieldname)=1如果你只运行这部分查询会得到任何错误?你在你的问题中做了什么
    • 这是行不通的 err 说 tat 有问题 "welect * from" 查询的第一行,错误是:“Msg 242, Level 16, State 3, Line 1 varchar 数据类型转换为 datetime 数据类型导致值超出范围。"
    猜你喜欢
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2014-09-05
    相关资源
    最近更新 更多