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

Proč je [datum] + ([čas] - [posun]) nedeterministické v SQL Server 2008?

Váš '1900-01-01' je nedeterministický, protože závisí na nastavení jazyka. samozřejmě, to je jednoznačné pro nastavení DMY nebo MDY, obecně je to nejednoznačné

Zkuste '19000101' :SQL Server zachází s daty a časy poněkud zvláštně:"yyyy-mm-dd" lze považovat za "yyyy-dd-mm", pokud máte britské nastavení, přestože jste teoreticky ISO

Upravit:použijte k odstranění aspektu data:DATEADD(day, 0, DATEDIFF(day, 0, [time]))

Edit2:1. leden 1900 je ve formátech data a času nula, takže jej není třeba odečítat. Můžete prosím zveřejnit ukázková data a výstup?



  1. Vytváření dočasných tabulek v SQL

  2. mysqli_real_escape_string nefunguje správně

  3. Vyberte první záznam, pokud žádný neodpovídá

  4. Převeďte 12hodinový formát na 24hodinový formát na serveru SQL