SSMS
 sql >> Baza danych >  >> Database Tools >> SSMS

wyodrębnij tekst z kolumny i skopiuj go do nowej kolumny

Zakładając, że musiałbym wyodrębnić z kolumny ciągu pierwsze wystąpienie wartości daty/czasu w następującym formacie DD/MM/YYYY HH:SS (długość =16 znaków) wtedy użyłbym PATINDEX zamiast CHARINDEX w ten sposób:

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)

Wyniki:

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. Brak okien dialogowych interfejsu użytkownika w MS Azure / SQL Server Management Studio

  2. Jak uzyskać maksymalną różnicę czasu między dowolnymi 2 kolejnymi rzędami na wartość?

  3. Domyślna baza danych SQL Server podczas zapytania - master

  4. Otrzymywanie błędu CREATE USER podczas próby importowania BACPAC z magazynu obiektów blob do ssms

  5. „DATA” nie jest rozpoznawaną nazwą funkcji wbudowanej