AGM*_*aja 1 sql sql-server sql-server-2008
我正在努力处理SQL中的查询,因此需要您的帮助.此查询未提供我想要的确切结果.我需要提取两个日期之间的所有日期.
我尝试了两个查询:
SELECT a.MemberID,CONVERT(varchar(12), b.BirthDate, 101) AS BirthDate
FROM Members_Hired AS a
INNER JOIN Members AS b
ON a.ReferenceID = b.RecordID
WHERE (CONVERT(varchar(12), b.BirthDate, 101) >= '02/01/2013'
and CONVERT(varchar(12), b.BirthDate, 101) <= '02/27/2013')
Run Code Online (Sandbox Code Playgroud)
和
SELECT a.MemberID,CONVERT(varchar(12), b.BirthDate, 101) AS BirthDate
FROM Members_Hired AS a
INNER JOIN Members AS b
ON a.ReferenceID = b.RecordID
WHERE (CONVERT(varchar(12), b.BirthDate, 101) BETWEEN '02/01/2013' and '02/27/2013')
Run Code Online (Sandbox Code Playgroud)
这给出了日期的结果'02/05/1990','02/17/1990'也.它只考虑月份和日期,而不是一年.
您应该比较日期而不是varchar值.更改您的where子句如下.另请注意,我在转换之前使用ISO格式(yyyymmdd)作为字符串日期,以确保它适用于任何文化.
b.birthdate between convert(date,'20130201' ) and
convert(date, '20130227')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2037 次 |
| 最近记录: |