2014-11-12 4 views
1

У меня есть формат строка, сохраненный в формате table.the как это -строки изменить, чтобы настроить формат на SQL

`11/Apr/2014 2:30:00 PM-11/Apr/2014 4:00:00 PM`. 

Используя этот формат, я хочу вернуться форматом подгоняет во время выполнения хранимой процедуры. Формат должен быть-

`9.00 AM To 10.00 AM`. 

Это то, что я пытаюсь:

SUBSTRING(LeaveManagement.EmployeeLeaveTransaction.Period, 12, 5) + 
SUBSTRING(LeaveManagement.EmployeeLeaveTransaction.Period, 20, 3) + 
' To ' + 
SUBSTRING(LeaveManagement.EmployeeLeaveTransaction.Period, 36, 5) + 
SUBSTRING(LeaveManagement.EmployeeLeaveTransaction.Period, 44, 3) 

но он возвращает неправильный формат, если исходная строка имеет

11/Apr/2014 12:30:00 PM-11/Apr/2014 4:00:00 PM

Может кто-нибудь мне помочь для этого. Я пытаюсь использовать этот запрос

ответ

0

Этот запрос wi Будет полезно получить ожидаемый результат в SQL SERVER.

DECLARE @Date AS VARCHAR(100) 

SET @Date = '11/Apr/2014 1:30:00 PM-11/Apr/2014 2:00:00 PM' 

SELECT SUBSTRING(@Date, CHARINDEX(' ', @Date), CHARINDEX('-', @Date) - CHARINDEX(' ', @Date)) 
     + ' To ' 
     + Reverse(Substring(REVERSE(@Date), 0, CHARINDEX('/', REVERSE(@Date)) - 5)) 

Используйте этот запрос:

SUBSTRING(LeaveManagement.EmployeeLeaveTransaction.Period, 
    CHARINDEX(' ', LeaveManagement.EmployeeLeaveTransaction.Period), 
    CHARINDEX('-', LeaveManagement.EmployeeLeaveTransaction.Period) 
    - CHARINDEX(' ', LeaveManagement.EmployeeLeaveTransaction.Period)) 
+ ' To ' 
+ Reverse(Substring(REVERSE(LeaveManagement.EmployeeLeaveTransaction.Period), 
    0, CHARINDEX('/', REVERSE(LeaveManagement.EmployeeLeaveTransaction.Period)) - 5)) 
0
SEELCT substr(COL_NAME,instr(COL_NAME,' ',1,1)+1,5)|| 
     substr(COL_NAME,instr(COL_NAME,' ',1,2),3) || 
     ' TO '          || 
     substr(COL_NAME,instr(COL_NAME,' ',1,3),5) || 
     substr(COL_NAME,instr(COL_NAME,' ',1,4),3) 
FROM table_name 
Смежные вопросы