【发布时间】:2018-10-16 00:55:11
【问题描述】:
我已将 OpeningDate 存储为 varchar(100) 并将 OpeningTime 存储为表中的时间。
我已经尝试了所有方法,但这会引发错误:
从字符串转换日期和/或时间时转换失败。
SELECT CONVERT(VARCHAR(100),CAST(OpeningDate AS DATE),106), --Cast to DATE first to get the style needed
CASE WHEN
( CAST(OpeningDate AS DATETIME)+ -- Cast to DATETIME
CAST(OpeningTime AS DATETIME) -- Also here
) < GETDATE()
THEN 1
ELSE 0 END AS OpeningVaild
FROM Works;
【问题讨论】:
-
OpeningTime 的数据类型是什么
-
时间............
-
您的查询对我有用
-
RegBes 的回答是一个很好的提示,您可能会在 Chanukya 的关于文化相关日期/时间格式的回答下方阅读我的评论...始终尝试将您的数据保存在具有适当格式的列中。对日期值使用字符串格式会减慢查询速度并且是错误的 - 正如您发现的那样......
-
这是一个案例表达式不是一个陈述
标签: sql sql-server tsql