我正在尝试更改列的日期格式,该列设置为 varchar 列名日期时间。问题是我实际上无法更改数据类型,因为数据是由自动化端的 PLC 自动输入的。我需要日期或数值中的日期,因为当我运行查询时,我需要给系统一个日期范围。我正在尝试使用子字符串来解决此问题,但收到一条错误消息,指出数据类型超出范围。这是我的查询的语法。
select cast(
(substring(datetime, 1, 4) + '-' +
SUBSTRING(DateTime, 5, 2) + '-' +
SUBSTRING(DateTime, 7, 2) + ' ' + '00:00:00.000') as dateTime) as "Date"
, ID1
, ID2
, diameter
, WeightTheoretical
, WeightActual
, StockType
from table1
where datetime is not null
and datetime <> ''
and datetime <> '0'
order by "Date", ID1;
编辑-日期格式是这样的 20120622:00:00:00:000