【发布时间】:2009-06-04 00:46:05
【问题描述】:
我正在运行 SQL Server 2005 (express)。 我正在尝试在查询中使用 DATEFORMAT 和 CONVERT。 我遇到了问题,所以我首先想问一下这些功能是否可以在任何地方使用。
我已经知道它们可以在 SELECT 中使用。 但是它们也可以用在 WHERE 中吗?
例如:
SELECT *
FROM review AS R, section AS SC, class AS CL, inserted AS M, section AS SC2, class AS CL2
WHERE
R.sectionId=SC.sectionId AND SC.classId=CL.classId AND
M.sectionId=SC2.sectionId AND SC2.classId=CL.classId AND
CL.classYear=CL2.classYear AND CL.classQuarter=CL2.classQuarter AND
M.meetingDay = DATEPART(weekday,R.reviewStart) AND
(
CONVERT(VARCHAR(8), R.reviewStart, 108) between CONVERT(VARCHAR(8), M.meetingStart, 108) and CONVERT(VARCHAR(8), M.meetingEnd, 108) OR
CONVERT(VARCHAR(8), R.reviewEnd, 108) between CONVERT(VARCHAR(8), M.meetingStart, 108) and CONVERT(VARCHAR(8), M.meetingEnd, 108) OR
CONVERT(VARCHAR(8), M.meetingStart, 108) between CONVERT(VARCHAR(8), R.reviewStart, 108) and CONVERT(VARCHAR(8), R.reviewEnd, 108) OR
CONVERT(VARCHAR(8), M.meetingEnd, 108) between CONVERT(VARCHAR(8), R.reviewStart, 108) and CONVERT(VARCHAR(8), R.reviewEnd, 108)
)
见 M.meetingDay = DATEPART 中的使用 ... 以及 BETWEEN 事物的所有部分。
这样合法吗?
谢谢
【问题讨论】:
标签: sql sql-server-2005 datetime