列の日付形式を変更しようとしていますが、列はvarchar列名datetimeとして設定されています。問題は、自動化側の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