sql >> Database >  >> RDS >> Sqlserver

Hoe geef ik letterlijk de datum op bij het schrijven van SQL-query's vanuit SQL Server die is gekoppeld aan Oracle?

Ik geef de voorkeur aan het ODBC-formaat:

--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

De eenvoudige letterlijke datum is niet cultuuronafhankelijk...

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

Maar het werkt - echter - met doeltype DATE (dit verschil is nogal raar...):

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 Ik wil voor de volledigheid de "volledige" ISO 8601 toevoegen, die prima werkt:

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. Hoe de sortering van database, tabel, kolom wijzigen?

  2. Verschil tussen zwevend en decimaal gegevenstype

  3. Createuser:kon geen verbinding maken met database postgres:FATAL:rol tom bestaat niet

  4. merge update oracle kan geen stabiele set rijen krijgen