【发布时间】:2015-07-13 12:06:47
【问题描述】:
SELECT *
FROM tblClassAppointments
INNER JOIN tblClassGroups ON tblClassAppointments.GroupID = tblClassGroups.GroupID
WHERE (
('2015-07-13' >= StartTime)
AND ('2015-07-13' <= EndTime)
AND ('2015-07-13' > StartTime)
AND ('2015-07-13' >= EndTime)
)
OR (
('2015-07-13' >= StartTime)
AND ('2015-07-13' < EndTime)
AND ('2015-07-13' > StartTime)
AND ('2015-07-13' <= EndTime)
)
OR (
('2015-07-13' <= StartTime)
AND ('2015-07-13' < EndTime)
AND ('2015-07-13' >= StartTime)
AND ('2015-07-13' <= EndTime)
)
OR (
('2015-07-13' <= StartTime)
AND ('2015-07-13' >= EndTime)
)
我使用上述查询来获取在特定时间段内放置的课程约会。我需要将StartTime(tblClassAppointments.StartTime) 和EndTime(tblClassAppointments.EndTime) 转换为yyyy-mm-dd。
我尝试了什么:
我试过了
CONVERT(char(10), StartTime, 126)
和
CONVERT(char(10), EndTime, 126)
而不是StartTime 和EndTime. 它给出了一个错误。
我需要什么:
如何在 where 子句中将 StartTime 和 EndTime 转换为 yyyy-mm-dd? (这两个字段都是日期时间类型)
请给我建议。谢谢
【问题讨论】:
-
您收到的错误是什么?
-
"它给出了一个错误。"如果您收到错误消息,请始终添加。 “它给出了一个错误”,因为唯一的声明是绝对没用的。
-
对不起,我理解我的弱点。我正在尝试取回该错误消息。我会发布它。感谢您指出我的错误。
-
你的日期表达式应该没问题。除非您有相当晦涩的国际化设置,否则 SQL Server 可以理解日期的 YYYY-MM-DD 格式。您的查询可能会从根本上简化,但您没有提供示例数据、所需结果以及您想要做什么的清晰说明。
-
@GordonLinoff,我理解我的问题中的错误。我会改进的。谢谢。
标签: sql date datetime casting sql-server-2012