このタイムスタンプは、文字列としてテーブルに保存されます。テーブルをクエリするときに日時型に変換するにはどうすればよいですか?
例えば:
declare @timestamp as nvarchar
set @timestamp ='20130319092507.000000-000'
私は試してみましconvert(datetime, timestamp, *n*)
たcast(timestamp as datetime)
このタイムスタンプは、文字列としてテーブルに保存されます。テーブルをクエリするときに日時型に変換するにはどうすればよいですか?
例えば:
declare @timestamp as nvarchar
set @timestamp ='20130319092507.000000-000'
私は試してみましconvert(datetime, timestamp, *n*)
たcast(timestamp as datetime)
私の最初の提案: テーブルを直してください! 日付/時刻の値を文字列として格納するのをやめます。そこから良いことは何も生まれません。たとえば、列に20130231
orが含まれている可能性があり、Hallowe'en
それらThis is not a date
を除外する必要があります。固有の検証に加えて、日付操作を実行する機能も失われます。
DECLARE @timestamp VARCHAR(32);
SET @timestamp = '20130319092507.000000-000';
SELECT CONVERT
(
DATETIME,
LEFT(@timestamp, 8) + ' '
+ STUFF(STUFF(SUBSTRING(@timestamp,9,6),3,0,':'),6,0,':')
);