我有一个表(不是由我构建),其中包含日期列(regDate - 例如2016年10月18日)作为文本和列,仅包含年份和mumeric月份。 我的问题是在2016年第8个月和2017年第10个月之间运行查询查看数据。 如何转换此日期格式以查看结果?
答案 0 :(得分:0)
在SQL Server中将您转换为Datetime。假设您的日期格式为18/10/2016
。
select CONVERT(date, '18/10/2016', 103)
您可以在where
子句中转换日期,然后使用between
查询。
答案 1 :(得分:0)
我会使用datefromparts()
:
where convert(date, regdate, 103) >= datefromparts(2016, 8, 1) and
convert(date, regdate, 103) < dateadd(month, 1, datefromparts(2017, 10, 1))
作为澄清的一句话:您有一个恰好代表日期的 text 列。您没有日期列。
我强烈建议您修复表格中的列类型:
update t
set regdate = convert(date, regdate, 103) ; -- this will format using the default date format
alter t alter column regdate date;