不同格式的SQL Server日期时间比较

maz*_*ztt 0 sql sql-server-2008

我有一个SQL查询,我将传递dd/mm/yyyy但SQL查询需要mm/dd/yyyy.

如何启用此查询以dd/mm/yyyy根据正确的格式获取并显示正确的结果?在SQL Server 2008中实现此功能的最佳方法是什么?

SELECT int_ExchangeRateId, int_LocationId, dtm_Date
FROM ExchangeRate
WHERE dtm_Date >= '01/02/2006' AND dtm_Date <= '12/02/2006' AND int_LocationId = 98
Run Code Online (Sandbox Code Playgroud)

这项工作正确:

SELECT int_ExchangeRateId, int_LocationId,dtm_Date 
FROM ExchangeRate 
WHERE CAST(dtm_Date AS DATE) BETWEEN '2006-02-02' AND '2006-02-12' 
  AND int_LocationId=98
Run Code Online (Sandbox Code Playgroud)

Ton*_*ony 5

对于查询,我将使用YYYY-MM-DD格式的日期.关于输出,请参阅kalyan的答案.

编辑:总结下面的评论(感谢marc_s),除非您使用新的日期类型,并在SQL Server 2008中,否则必须使用YYYYMMDD时间部分不包括时的格式.datedatetime2datetimeoffset