Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Czy istnieje funkcja typu isdate() dla datetime2?

W SQL Server 2012 możesz użyć TRY_CONVERT :

SELECT TRY_CONVERT(DATETIME2, '2012-02-02 13:42:55.2323623'),
       TRY_CONVERT(DATETIME2, '2012-02-31 13:42:55.2323623');

Wyniki:

2012-02-02 13:42:55.2323623    NULL

Lub TRY_PARSE :

SELECT TRY_PARSE('2012-02-02 13:42:55.2323623' AS DATETIME2),
       TRY_PARSE('2012-02-31 13:42:55.2323623' AS DATETIME2);

(Te same wyniki.)

Przepraszam, że nie mam dla ciebie mądrej odpowiedzi na

SELECT ISDATE(LEFT('2012-02-02 13:42:55.2323623', 23));

Ale to jest brudne.

TRY_CONVERT dokumentacja dotycząca Microsoft Docs
TRY_PARSE dokumentacja dotycząca Microsoft Docs



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UPDATE i REPLACE część ciągu

  2. Blokady rzędów - ręcznie za ich pomocą

  3. Jak działa funkcja SPACE() w SQL Server (T-SQL)

  4. Jak uzyskać informacje o dacie/godzinie z kolumny TIMESTAMP?

  5. Haszowanie hasła do SQL