GETDATE (Transact-SQL)
Возвращает текущую системную метку времени базы данных в виде значения datetime без смещения часового пояса базы данных. Это значение наследуется от операционной системы компьютера, на котором работает экземпляр SQL Server.
SYSDATETIME и SYSUTCDATETIME имеют большую точность в долях секунды, чем GETDATE и GETUTCDATE. SYSDATETIMEOFFSET включает смещение часового пояса, заданное в системе. SYSDATETIME, SYSUTCDATETIME и SYSDATETIMEOFFSET можно присваивать переменным любого типа даты и времени.
База данных SQL Azure (за исключением Управляемого экземпляра SQL Azure) и Azure Synapse Analytics используют время в формате UTC. Если необходимо интерпретировать сведения о дате и времени в часовом поясе, отличном от UTC, используйте AT TIME ZONE в Базе данных SQL Azure или Azure Synapse Analytics.
Обзор всех типов данных и функций даты и времени в языке Transact-SQL см. в статье Типы данных и функции даты и времени (Transact-SQL).
Синтаксис
GETDATE()
Тип возвращаемых данных
datetime
Remarks
Инструкции языка Transact-SQL могут ссылаться на функцию GETDATE в любом месте, где они могут ссылаться на выражение типа datetime.
GETDATE является недетерминированной функцией. Невозможно проиндексировать представления и выражения, ссылающиеся на эту функцию в столбце.
Использование SWITCHOFFSET с функцией GETDATE() может вызвать замедление выполнения запроса, поскольку оптимизатор запросов не может получить точные оценки количества элементов для значения GETDATE. Рекомендуется заранее вычислить значение GETDATE, а затем указать это значение в запросе, как показано в следующем примере. Кроме того, с помощью указания запроса OPTION (RECOMPILE) можно вынудить оптимизатор запросов повторно компилировать план запроса при каждом выполнении одного и того же запроса. В этом случае оптимизатор будет иметь точные оценки количества элементов для GETDATE(), что позволит ему сформировать более эффективный план запроса.
DECLARE @dt datetimeoffset = switchoffset (CONVERT(datetimeoffset, GETDATE()), '-04:00'); SELECT * FROM t WHERE c1 > @dt OPTION (RECOMPILE);
Примеры
В следующих примерах с помощью шести системных функций SQL Server, которые возвращают текущую дату и время, происходит возврат даты, времени или и того и другого. Значения возвращаются последовательно и поэтому могут различаться на доли секунды.
A. Получение текущей системной даты и времени
SELECT SYSDATETIME() ,SYSDATETIMEOFFSET() ,SYSUTCDATETIME() ,CURRENT_TIMESTAMP ,GETDATE() ,GETUTCDATE();
SYSDATETIME() 2007-04-30 13:10:02.0474381 SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00 SYSUTCDATETIME() 2007-04-30 20:10:02.0474381 CURRENT_TIMESTAMP 2007-04-30 13:10:02.047 GETDATE() 2007-04-30 13:10:02.047 GETUTCDATE() 2007-04-30 20:10:02.047
Б. Получение текущей системной даты
SELECT CONVERT (date, SYSDATETIME()) ,CONVERT (date, SYSDATETIMEOFFSET()) ,CONVERT (date, SYSUTCDATETIME()) ,CONVERT (date, CURRENT_TIMESTAMP) ,CONVERT (date, GETDATE()) ,CONVERT (date, GETUTCDATE());
SYSDATETIME() 2007-05-03 SYSDATETIMEOFFSET() 2007-05-03 SYSUTCDATETIME() 2007-05-04 CURRENT_TIMESTAMP 2007-05-03 GETDATE() 2007-05-03 GETUTCDATE() 2007-05-04
В. Получение текущего системного времени
SELECT CONVERT (time, SYSDATETIME()) ,CONVERT (time, SYSDATETIMEOFFSET()) ,CONVERT (time, SYSUTCDATETIME()) ,CONVERT (time, CURRENT_TIMESTAMP) ,CONVERT (time, GETDATE()) ,CONVERT (time, GETUTCDATE());
SYSDATETIME() 13:18:45.3490361 SYSDATETIMEOFFSET() 13:18:45.3490361 SYSUTCDATETIME() 20:18:45.3490361 CURRENT_TIMESTAMP 13:18:45.3470000 GETDATE() 13:18:45.3470000 GETUTCDATE() 20:18:45.3470000
Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)
В приведенных ниже примерах с помощью трех системных функций SQL Server, которые возвращают текущую дату и время, происходит получение даты, времени или и того и другого. Значения возвращаются последовательно и поэтому могут различаться на доли секунды.
Г. Получение текущей системной даты и времени
SELECT SYSDATETIME() ,CURRENT_TIMESTAMP ,GETDATE();
Д. Получение текущей системной даты
SELECT CONVERT (date, SYSDATETIME()) ,CONVERT (date, CURRENT_TIMESTAMP) ,CONVERT (date, GETDATE());
Е. Получение текущего системного времени
SELECT CONVERT (time, SYSDATETIME()) ,CONVERT (time, CURRENT_TIMESTAMP) ,CONVERT (time, GETDATE());
Выборка даты без времени
Подскажите запрос на выборку только даты из БД. Имеется строка в таблице формата TIMESTAMP 0000-0-0 00:00:00 , так вот как сделать что бы на экран выводилась только дата а не дата со временем .
Отслеживать
задан 17 янв 2013 в 9:47
1,665 5 5 золотых знаков 35 35 серебряных знаков 73 73 бронзовых знака
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
SELECT DATE_FORMAT( `date_field` , '%d %M %Y' ) AS `date_format` FROM `table_name`
Отслеживать
ответ дан 17 янв 2013 в 10:01
34k 1 1 золотой знак 31 31 серебряный знак 49 49 бронзовых знаков
А как сделать чтоб %M — на русском выводило?)
7 мая 2018 в 12:05
@junior-web-dev, запрос перед этим сделайте: SET lc_time_names = ‘ru_RU’;
7 мая 2018 в 12:43
SELECT DATE( some_field ) FROM some_table
Больше функций — красивых и разных.
Отслеживать
ответ дан 17 янв 2013 в 9:59
xEdelweiss xEdelweiss
9,114 17 17 серебряных знаков 31 31 бронзовый знак
В конце выбранного названия колонки дописать ::date, если я правильно вас понял.
Отслеживать
ответ дан 1 мар 2020 в 14:35
Вот пример, чтоб было более понятно. select shipments.ship_date::date,customer_id,publication, type from shipments, editions, stock ORDER BY publication;
1 мар 2020 в 14:36
Покажите пожалуйста результат вашего запроса на каком-то sql fiddle.
1 мар 2020 в 15:53
вот тут смотрите, думаю, найдете, что искали
Отслеживать
ответ дан 17 янв 2013 в 9:55
DreamChild DreamChild
36.2k 3 3 золотых знака 45 45 серебряных знаков 85 85 бронзовых знаков
- sql
- html
- php
- mysql
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
SQL рецепты: дата без времени
Так же часто встречающаяся задача — получить дату без времени. Два рецепта, первый работает с 2005 сервера, второй с 2008.
1. select CAST(CONVERT(VARCHAR, GETDATE(), 102) AS DATETIME)
2. select CAST(CAST(GETDATE() AS date) as DATETIME)
4 thoughts on “ SQL рецепты: дата без времени ”
На праздниках Я сорвал куш в этом
любимом онлайн-казино
На прошлой неделе Я забрал бабло в этом игровом зале
Не очень давно Я выиграл много денег в этом лучшем онлайн-клубе
Несколько месяцев назад Я разбогател в этом онлайн-казино
Добавить комментарий Отменить ответ
Я слушаю..
- No recently listened tracks.
Me on.
Друзья
Последние комментарии
- BlakeBer к записи Google speech api v2 для чайников
- AlbertBal к записи Google speech api v2 для чайников
- Michaelhigue к записи Google speech api v2 для чайников
Ссылки
- ЖК Квартал Новаторов Екатеринбург
- Квартиры в Екатеринбурге
Как вывести дату в sql
Чтобы вывести дату в SQL, используйте функцию DATE_FORMAT() . Синтаксис функции выглядит следующим образом:
DATE_FORMAT(date, format)
где date — это дата, которую вы хотите отформатировать, а format — это строка формата, которая определяет, как должна быть отформатирована дата.
Например, чтобы вывести текущую дату в формате ГГГГ-ММ-ДД, используйте следующий запрос:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');
В результате выполнения этого запроса вы увидите дату в формате ГГГГ-ММ-ДД, например, 2023-04-08.
Вы также можете использовать функции для работы с датами, такие как NOW() , CURDATE() , CURTIME() , чтобы получить текущую дату и время, текущую дату и текущее время соответственно.
Некоторые примеры форматирования дат:
- ‘%Y-%m-%d’ — ГГГГ-ММ-ДД (например, 2023-04-08)
- ‘%Y-%m-%d %H:%i:%s’ — ГГГГ-ММ-ДД ЧЧ:ММ:СС (например, 2023-04-08 13:30:45)
- ‘%d-%m-%Y’ — ДД-ММ-ГГГГ (например, 08-04-2023)
Обратите внимание, что форматирование даты может отличаться в зависимости от используемой СУБД.