Найти строку со столбцом nvarchar, имеющую значение int между двумя значениями в середине строки в столбце - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть столбец nvarchar, который имеет значения, такие как

'21: 15:00 понедельника 1390/09/10 утро '

Я хочу выбратьстроки, имеющие третью часть (что означает «1390/09/10») между «1390/09/07» И «1390/09/15».Я не хочу менять структуру значений столбцов, чтобы по какой-то причине приводить третью часть в начало или конец строки.Я пробовал это

ВЫБРАТЬ * ИЗ таблицы ГДЕ столбец МЕЖДУ '% 1390/09/07%' И '% 1390/09/15%'

, но он выигралне работает.

Я использовал SQL Server 2008 .

1 Ответ

1 голос
/ 19 декабря 2011

Чтобы извлечь дату, вы должны сделать это:

DECLARE @t VARCHAR(100) ='21:15:00 monday 1390/09/10 morning'
SELECT CONVERT(DATETIME2, SUBSTRING(@t,  PATINDEX('%[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]%',@t),10),111) 

Я использовал DateTime2, как и SQL Server 2008.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...