sql >> Database teknologi >  >> RDS >> Sqlserver

Konverter datetime i sql server

For at få "25-Oct-2010"

Forudsat at værdien er angivet som en streng, ikke en DATETIME-datatype:

SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')

Se CAST/CONVERT-dokumentationen for andre formater, selvom det, du anmodede om, kræver efterbehandling.

For at få "2010-10-25 00:00:00.000"

Det bedste middel er at bruge DATEADD &DATEDIFF:

SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)

Referencer:

Test

WITH sample AS (
   SELECT CAST('2010-10-25 11:13:36.700' AS DATETIME) dt)
SELECT REPLACE(CONVERT(VARCHAR, s.dt, 106), ' ', '-') AS col1,
       DATEADD(d, DATEDIFF(dd, 0, s.dt), 0) AS col2
  FROM sample s

Returnerer:

col1          col2
-------------------------------------
25-Oct-2010   2010-10-25 00:00:00.000

Tillæg

Da du er på SQL Server 2005, kan du gøre datoformatering nemmere for dig selv ved at oprette en SQLCLR-funktion, der giver dig mulighed for at bruge .NET datoformatering.



  1. MySQL skrivning på en tekstfil

  2. MySQL-forespørgselsperioder og værdien af ​​maksimalt fald i forhold til foregående maksimumværdi

  3. Postgres SQL til at forespørge array-tekst[] i specifikt element

  4. MYSQL TINYBLOB vs LONGBLOB