sql >> Databasteknik >  >> RDS >> Sqlserver

Hur anger jag bokstavligt datum när jag skriver SQL-fråga från SQL Server som är länkad till Oracle?

Jag föredrar ODBC-formatet:

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

Det enkla datumet är inte kulturoberoende...

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

Men det fungerar - dock - med måltypen DATE (denna skillnad är ganska konstig...):

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

Tack till lad2025 Jag vill lägga till för fullständighetens skull "fullständiga" ISO 8601, vilket fungerar bra:

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. Stoppa (lång) körning av SQL-fråga i PostgreSQL när session eller begäranden inte längre existerar?

  2. Infoga data från en tabell till en annan i MySQL

  3. Varaktighet för data i en global temporär tabell?

  4. Utför denna tidsfråga i PostgreSQL