Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Konwertuj datę i godzinę na serwerze sql

Aby uzyskać „25 października 2010”

Zakładając, że wartość jest podana jako ciąg, a nie typ danych DATETIME:

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

Zobacz dokumentację CAST/CONVERT dla innych formatów, chociaż ten, o który prosiłeś, wymaga przetwarzania końcowego.

Aby uzyskać „25.10.2010 00:00:00.000”

Najskuteczniejszym sposobem jest użycie DATEADD i DATEDIFF:

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

Referencje:

Testowanie

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

Zwroty:

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

Uzupełnienie

Ponieważ korzystasz z SQL Server 2005, możesz ułatwić sobie formatowanie daty, tworząc funkcję SQLCLR, która umożliwiłaby użycie formatowania daty .NET.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodawanie tożsamości do istniejącej kolumny

  2. Skopiuj dane do i z tej samej tabeli i zmień wartość skopiowanych danych w jednej kolumnie na określoną wartość

  3. Zamiana wartości null na zero

  4. Sprawdzanie ograniczeń:TRY/CATCH vs Exists()

  5. Jak uzyskać listę kolumn w tabeli lub widoku?