यह मानते हुए कि मुझे निम्नलिखित प्रारूप वाले दिनांक/समय मानों की पहली घटना एक स्ट्रिंग कॉलम से निकालना होगा DD/MM/YYYY HH:SS
(लंबाई =16 वर्ण) तो मैं PATINDEX
. का उपयोग करूंगा CHARINDEX
. के बजाय इस प्रकार:
SELECT *,
SUBSTRING(
x.StringColumn,
NULLIF(PATINDEX('%[0-1][0-9]/[0-3][0-9]/[0-9][0-9][0-9][0-9][ ][0-9][0-9]:[0-9][0-9]%', x.StringColumn), 0),
16) AS DateTimeExtracted
FROM (VALUES
('Bogdanel 01/02/2017 03:04 hei ho'),
('Georgel 05/06/2017 07:08 danga langa'),
('Suna''n asfintit 09/11/2018 11:22 hei talanga'),
('Danga langa. Pai da.'),
(' '),
(NULL)
) x(StringColumn)
परिणाम:
StringColumn DateTimeExtracted
-------------------------------------------- -----------------
Bogdanel 01/02/2017 03:04 hei ho 01/02/2017 03:04
Georgel 05/06/2017 07:08 danga langa 05/06/2017 07:08
Suna'n asfintit 09/11/2018 11:22 hei talanga 09/11/2018 11:22
Danga langa. Pai da. NULL
NULL
NULL NULL