我已經運行已在我tblRota.StartTime
和tblRota.EndTime
格式更新多條記錄進口900和1700SQL服務器:格式700隨着時間的
我怎樣才能重新格式化這些以09:00至17:00 ?
這兩列的數據類型是varchar
。
謝謝。
我已經運行已在我tblRota.StartTime
和tblRota.EndTime
格式更新多條記錄進口900和1700SQL服務器:格式700隨着時間的
我怎樣才能重新格式化這些以09:00至17:00 ?
這兩列的數據類型是varchar
。
謝謝。
您可以使用此查詢:
select stuff(right('0' + replace([StartTime], ':', ''), 4), 3, 0, ':'),
stuff(right('0' + replace([EndTime], ':', ''), 4), 3, 0, ':')
from [tblRota]
的步驟是:
:
:replace([StartTime], ':', '')
right('0' + <3Or4DigitTime>, 4)
:
:stuff(<4DigitTime>, 3, 0, ':')
這可以正常工作,但有些已經正確格式化,並且如果它們是正確的,它們就會出現如8 :: 00。我怎樣才能改變它忽略正確的? –
@JoshCooper - 沒有在規範中指定:) =>更新了我的回答 –
感謝您的更新使其完美工作! –
使用一些字符串操作:
UPDATE tblRota
SET StartTime = LEFT(RIGHT('0'+StartTime , 4),2)+':'+RIGHT(StartTime ,2),
EndTime = LEFT(RIGHT('0'+EndTime , 4),2)+':'+RIGHT(EndTime ,2)
這工作正常,但一些已格式正確,他們出現如8 :: 00,如果他們是正確的開始。我怎樣才能改變它忽略正確的? –
什麼版本的SQL Server您使用的是?你想讓它們成爲一個實際的'時間'數據類型嗎?或者只是格式化爲'00:00'字符?假設您擁有數據庫的控制權,您應該首先使用正確的數據類型。 – LittleBobbyTables