所以我有一個不同時區的字符串表。 一些時間段都有括號後他們如:charindex在一些字符串上工作,但不是另一個字符串。爲什麼不一致?
- 中部夏令時間(北美)
- 山地標準時間(墨西哥)
因此,我們要進去擺脫一切括號,和我使用CHARINDEX這樣做:
select TimeZoneName,
CHARINDEX(' (' , TimeZoneName) as indexTZ2,
Case When CHARINDEX(' (' , TimeZoneName)= 0 Then TimeZoneName
Else LEFT(TimeZoneName,CHARINDEX (' (' ,TimeZoneName)-1) End
as TZ2
from TimeZone
,這裏是我的輸出:
TimeZoneName indexTZ2 TZ2
Mountain Standard Time (North America) 0 Mountain Standard Time (North America)
Mountain Standard Time (Mexico) 23 Mountain Standard Time
現在我很困惑,爲什麼相同的代碼適用於其中一個(墨西哥一)而不是另一個(北美一)? 數據來自同一個表,因此此列中的數據類型相同。
想知道「(北美)」前的空白字符是不是一個真正的空間。 –
嗨@JohnPasquet我該如何檢查?我試圖複製並粘貼到某個地方的字符串,這是一個空間。我的測試方法可能非常不成熟,請諮詢! – alwaysaskingquestions
只需使用括號的索引並且不包含之前的空格。您可以使用LTRIM(RTRIM())去除空白,這是必要的。 或 從括號的索引中減去2。 –