Как вернуть только дату из типа данных SQL Server DateTime

SELECT GETDATE()

Возвращает: 2008-09-22 15:24:13.790

Я хочу эту часть даты без временной части: 2008-09-22 00:00:00.000

Как я могу это получить?

+1658
источник поделиться
45 ответов
  • 1
  • 2

Это отсутствовало во всех ответах, может быть не самым эффективным, но очень легким в написании и понимании, без стиля, без сложных функций даты.

SELECT CONVERT(DATETIME,CONVERT(DATE,((GETDATE()))))
+3
источник
SELECT * FROM tablename WHERE CAST ([my_date_time_var] AS DATE)= '8/5/2015'
+2
источник

Мой общий подход для получения даты без временной части.

 SELECT CONVERT(VARCHAR(MAX),GETDATE(),103)

 SELECT CAST(GETDATE() AS DATE)
+2
источник

Попробуй это:

SELECT CONVERT(date, GETDATE()) as date
+2
источник

Мой стиль

      select Convert(smalldatetime,Convert(int,Convert(float,getdate())))
+1
источник

Если используется SQL 2008 и выше: SELECT CONVERT(DATE ,GETDATE())

+1
источник

Если вы хотите, чтобы дата показывала 2008-09-22 00:00:00.000

тогда вы можете округлить его, используя

SELECT CONVERT(datetime, (ROUND(convert(float, getdate()-.5),0)))

Это покажет дату в формате в вопросе

+1
источник

SELECT CONVERT (дата, getdate())

0
источник
select cast(createddate as date) as derivedate from table 

createate - ваш столбец datetime, это работает для sqlserver

0
источник

Вы можете использовать, как показано ниже, для другого типа вывода только для даты

  1. SELECT CONVERT(datetime, CONVERT(varchar, GETDATE(), 103)) -----dd/мм/гггг

  2. SELECT CONVERT(datetime, CONVERT(varchar, GETDATE(), 101)) ------mm/дд/гггг

  3. SELECT CONVERT(datetime, CONVERT(varchar, GETDATE(), 102))

0
источник

Ух ты, дай мне посчитать, как ты можешь это сделать. (не каламбур)

Для того, чтобы получить результаты, которые вы хотите в этом формате специально:

2008-09-22

Вот несколько вариантов.

SELECT CAST(GETDATE() AS DATE) AS 'Date1'
SELECT Date2  = CONVERT(DATE, GETDATE())
SELECT CONVERT(DATE, GETDATE()) AS 'Date3'
SELECT CONVERT(CHAR(10), GETDATE(), 121) AS 'Date4'
SELECT CONVERT(CHAR(10), GETDATE(), 126) AS 'Date5'
SELECT CONVERT(CHAR(10), GETDATE(), 127) AS 'Date6'

Итак, я бы предложил выбрать тот, который вам удобен, и использовать этот метод на всех ваших столах.

Все эти параметры возвращают дату в том же формате. Почему SQL Server имеет такую избыточность?

Я понятия не имею, но они делают. Может быть, кто-нибудь умнее меня сможет ответить на этот вопрос.

Надеюсь, это кому-нибудь поможет.

0
источник

Вы можете просто использовать приведенный ниже код, чтобы получить только часть даты и избежать временной части в SQL:

SELECT SYSDATE TODAY FROM DUAL; 
-1
источник
select convert(getdate() as date)

select CONVERT(datetime,CONVERT(date, getdate()))
-1
источник

Самый простой способ - использовать: SELECT DATE(GETDATE())

-2
источник
select Cast (getdate() as Date) yourDate
-4
источник
  • 1
  • 2

Посмотрите другие вопросы по меткам или Задайте вопрос