SSMS
 sql >> база данни >  >> Database Tools >> SSMS

извличане на текст от колона и копиране в нова колона

Ако приемем, че ще трябва да извлека от колона низ първо появяване на стойности за дата/час със следния формат 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


  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. SQL повтарящ се символен низ

  2. Как да определим типовете данни на резултатите от SQL?

  3. Не може да стартира SSMS (SQL Server 2014 Express) – Невалидни данни за лиценза. Изисква се преинсталиране

  4. Разделяне на стойност на едно поле на множество стойности на колони с фиксирана дължина в T-SQL

  5. SQL Server Management Studio:Отворете таблицата за редактиране чрез клавишна комбинация