我有兩列「文本」數據類型,我需要將第一列中的全部數據轉換爲「日期時間」數據類型,第二列轉換爲「十進制(10,3)」數據類型。當前數據的SQL轉換數據類型
例子: 第一列:20090901000005
隱蔽到2009/08/01 00:00:05
第二欄:.125
轉換爲00.125
任何一個可以幫助請:)
我有兩列「文本」數據類型,我需要將第一列中的全部數據轉換爲「日期時間」數據類型,第二列轉換爲「十進制(10,3)」數據類型。當前數據的SQL轉換數據類型
例子: 第一列:20090901000005
隱蔽到2009/08/01 00:00:05
第二欄:.125
轉換爲00.125
任何一個可以幫助請:)
您可以使用左,右分割字符串分成幾部分。然後使用convert函數將其轉換爲日期。 ODBC規範(120)的格式是:YYYY-MM-DD HH:MI:SS
CONVERT(datetime,
left(firstcol, 4) + '-' +
left(right(firstcol, 10) ,2) + '-' +
left(right(firstcol, 8) ,2) + ' ' +
left(right(firstcol, 6) ,2) + ':' +
left(right(firstcol, 4) ,2) + ':' +
right(firstcol, 2)
, 120)
對於第二列:
CONVERT(float, right(secondcol, 3))/1000
可以使用這樣的:
select cast(cast(col1 as varchar(8)) as datetime) +
cast(left(right(cast(col1 as varchar(14)), 6), 2) + ':' +
substring(right(cast(col1 as varchar(14)), 6), 2, 2) + ':' +
right(right(cast(col1 as varchar(14)), 6), 2) as datetime) newDate,
cast(cast(col2 as varchar(10)) as decimal(10, 3)) newDecimal
from yourtable
我會這樣做:
SELECT
CONVERT(DATETIME,
(SUBSTRING(dateValue, 1, 8) + ' ' +
SUBSTRING(dateValue, 9, 2) + ':' +
SUBSTRING(dateValue, 11, 2) + ':' +
SUBSTRING(dateValue, 13, 2))) as 'dateValue',
CONVERT(DECIMAL(10, 3), decimalValue) as 'decimalValue'
FROM text_table
消息8116,級別16,狀態1,行1 參數數據類型文本對左函數的參數1無效。 – Thamir
你應該將文本投射到varchar。 – danihp
ou應該將文本投射到varchar。子字符串函數可以做這個工作,請參閱@vicdor答案。 – danihp