具有日期值的varchar字段查询

问题描述 投票:0回答:1

在sql-server db上,我需要查询日期>从varchar字段中获取getdate

我的桌子

id | activatioDate (varchar(100)) |<br>
22 | 12/3/2021     |<br>
23 | 12/7/2019     |<br>
24 | 12/9/2020     |<br>
25 | 12/3/2019     |<br>
26 | 12/11/2019    |<br>
27 | 12/1/2024     |<br>

我的查询

select * from mytable
where activatioDate > GETDATE()

预期结果

22 | 12/3/2021     |<br>
24 | 12/9/2020     |<br>
27 | 12/1/2024     |<br>

我遇到以下错误“将varchar数据类型转换为datetime数据类型导致超出范围的值。”

有任何建议吗?

sql sql-server datetime varchar
1个回答
0
投票

使用CONVERT

SELECT *
FROM mytable
WHERE CONVERT(datetime, activatioDate, 101) > GETDATE();

但是通常,您应避免将日期作为文本存储在SQL数据库中。

© www.soinside.com 2019 - 2024. All rights reserved.