sql >> Databáze >  >> RDS >> Sqlserver

Jak určím datumový literál při psaní dotazu SQL ze serveru SQL, který je propojen s Oracle?

Preferuji formát ODBC:

--DateTime
SELECT {ts'2015-09-20 12:30:00'}
--Time (however this comes with "today"-time)
SELECT {t'12:30:00'}
--Date
SELECT {d'2015-09-20'}
GO

Jednoduchý datový literál není na kultuře nezávislý...

SET LANGUAGE ENGLISH;
SELECT CAST('2014-09-13' AS DATETIME);
GO
SET LANGUAGE GERMAN;
SELECT CAST('2014-09-13' AS DATETIME);--ERROR: there's no month "13"
GO

Ale funguje to – nicméně – s typem cíle DATE (tento rozdíl je poněkud zvláštní...):

SET LANGUAGE ENGLISH;
SELECT CAST('2014-09-13' AS DATE);
GO
SET LANGUAGE GERMAN;
SELECT CAST('2014-09-13' AS DATE);--ERROR: there's no month "13"
GO

Thx to lad2025 Chci pro úplnost přidat "plnou" ISO 8601, která funguje dobře:

SET LANGUAGE ENGLISH;
SELECT CAST('2014-09-13T12:30:00' AS DATETIME);
GO
SET LANGUAGE GERMAN;
SELECT CAST('2014-09-13T12:30:00' AS DATETIME);
GO


  1. Uložte data v metodě onDestroy aktivity

  2. Jak změnit nastavení konfigurace pro databázovou poštu na serveru SQL Server (T-SQL)

  3. Prohlášení FORALL s vázanou doložkou VALUES-OF v databázi Oracle

  4. Oracle SQL, jak odstranit čas z data