我将日期存储在 varchar 列中(我知道这是个坏主意),但没有日期破坏符.. 采用 ddMMyyy 格式..Example: 23-10-2013 is stored as 23102013
在数据库中。现在我想搜索两个特定日期之间的记录,例如12-10-2013 and 20-10-2013
我是怎么来的?我正在使用 SQL Server
问问题
604 次
2 回答
5
尝试这个:
SELECT *,
LEFT(CONVERT(VARCHAR, t.[parseddate], 120), 10) AS ParsedDate2
FROM (SELECT *,
CONVERT(DATETIME, Stuff(Stuff([startdate], 3, 0, '-'), 6, 0, '-')
, 105)
AS
ParsedDate
FROM mytable) AS t
WHERE t.[parseddate] BETWEEN '2013/10/10' AND '2013/10/20'
您可能会看到它在这里工作。
有关可用的日期和时间样式,请查看此 MSDN 文章:
于 2013-10-25T06:19:51.013 回答
0
我建议你3个解决方案。1-更新您的列添加 - 例如:23052012 --> 23-05-2012 您可以使用子字符串来达到目标,然后我将与比较运算符一起工作。请注意,它仅适用于 dd-mm-yyyy 2-use substring 将前 2 位数字分隔为 day ,然后将整数与变量进行比较。3-转换(日期,您的日期)
于 2013-10-25T06:17:34.760 回答