DATEDIFF() function :
This function in SQL Server is used to find the difference between the two specified dates.
Features :
- This function is used to find the difference between the two given dates values.
- This function comes under Date Functions.
- This function accepts three parameters namely interval, first value of date, and second value of date.
- This function can include time in the interval section and also in the date value section.
Syntax :
DATEDIFF(interval, date1, date2)
Parameter :
This method accepts three parameters as given below :
- interval : It is the specified part which is to be returned. Moreover, the values of the interval can be as given below:
- year, yyyy, yy = Year, which is the specified year.
- quarter, qq, q = Quarter, which is the specified quarter.
- month, mm, m = month, which is the specified month.
- dayofyear, dy, y = Day of the year, which is the specified day of the year.
- day, dd, d = Day, which is the specified day.
- week, ww, wk = Week, which is the specified week.
- weekday, dw, w = Weekday, which is the specified week day.
- hour, hh = hour, which is the specified hour.
- minute, mi, n = Minute, which is the specified minute.
- second, ss, s = Second, which is the specified second.
- millisecond, ms = Millisecond, which is the specified millisecond.
- date1, date2 : The two specified dates in order to find the difference between them.
Returns :
It returns the difference between the two specified dates.
Example-1 :
Using DATEDIFF() function and getting the difference between two values of dates, in years.
SELECT DATEDIFF(year, '2010/01/12', '2021/01/12');
Output :
11
Example-2 :
Using DATEDIFF() function and getting the difference between two values of dates, in months.
SELECT DATEDIFF(month, '2010/2/12', '2021/12/12');
Output :
142
Example-3 :
Using DATEDIFF() function and getting the negative difference between the two values of dates, in day.
SELECT DATEDIFF(day, '2021/2/1', '2010/12/12');
Output :
-3704
Example-4 :
Using DATEDIFF() function and getting the difference between the two values of dates which includes time as well, in hour.
SELECT DATEDIFF(hour, '2019/2/1 09:55', '2020/12/12 07:45');
Output :
16318
Example-5 :
Using DATEDIFF() function and getting the difference between the two values of dates using variables which includes time as well, in second.
DECLARE @date1 VARCHAR(50); DECLARE @date2 VARCHAR(50); SET @date1 = '2019/2/1 09:55:44'; SET @date2 = '2020/12/12 07:45:22'; SELECT DATEDIFF(second, @date1, @date2);
Output :
58744178
Application :
This function is used to find the difference between two specified values of date.
Last Updated :
18 Jan, 2021
Like Article
Save Article
CREATE FUNCTION getDateDiffHours(@fdate AS datetime,@tdate as datetime)
RETURNS varchar (50)
AS
BEGIN
DECLARE @cnt int
DECLARE @cntDate datetime
DECLARE @dayDiff int
DECLARE @dayDiffWk int
DECLARE @hrsDiff decimal(18)
DECLARE @markerFDate datetime
DECLARE @markerTDate datetime
DECLARE @fTime int
DECLARE @tTime int
DECLARE @nfTime varchar(8)
DECLARE @ntTime varchar(8)
DECLARE @nfdate datetime
DECLARE @ntdate datetime
-------------------------------------
--DECLARE @fdate datetime
--DECLARE @tdate datetime
--SET @fdate = '2005-04-18 00:00:00.000'
--SET @tdate = '2005-08-26 15:06:07.030'
-------------------------------------
DECLARE @tempdate datetime
--setting weekends
SET @fdate = dbo.getVDate(@fdate)
SET @tdate = dbo.getVDate(@tdate)
--RETURN @fdate
SET @fTime = datepart(hh,@fdate)
SET @tTime = datepart(hh,@tdate)
--RETURN @fTime
if datediff(hour,@fdate, @tdate) <= 9
RETURN(convert(varchar(50),0) + ' Days ' + convert(varchar(50),datediff(hour,@fdate, @tdate))) + ' Hours'
else
--setting working hours
SET @nfTime = dbo.getV00(convert(varchar(2),datepart(hh,@fdate))) + ':' +dbo.getV00(convert(varchar(2),datepart(mi,@fdate))) + ':'+ dbo.getV00(convert(varchar(2),datepart(ss,@fdate)))
SET @ntTime = dbo.getV00(convert(varchar(2),datepart(hh,@tdate))) + ':' +dbo.getV00(convert(varchar(2),datepart(mi,@tdate))) + ':'+ dbo.getV00(convert(varchar(2),datepart(ss,@tdate)))
IF @fTime > 17
begin
set @nfTime = '17:00:00'
end
else
begin
IF @fTime < 8
set @nfTime = '08:00:00'
end
IF @tTime > 17
begin
set @ntTime = '17:00:00'
end
else
begin
IF @tTime < 8
set @ntTime = '08:00:00'
end
-- used for working out whole days
SET @nfdate = dateadd(day,1,@fdate)
SET @ntdate = @tdate
SET @nfdate = convert(varchar,datepart(yyyy,@nfdate)) + '-' + convert(varchar,datepart(mm,@nfdate)) + '-' + convert(varchar,datepart(dd,@nfdate))
SET @ntdate = convert(varchar,datepart(yyyy,@ntdate)) + '-' + convert(varchar,datepart(mm,@ntdate)) + '-' + convert(varchar,datepart(dd,@ntdate))
SET @cnt = 0
SET @dayDiff = 0
SET @cntDate = @nfdate
SET @dayDiffWk = convert(decimal(18,2),@ntdate-@nfdate)
--select @nfdate,@ntdate
WHILE @cnt < @dayDiffWk
BEGIN
IF (NOT DATENAME(dw, @cntDate) = 'Saturday') AND (NOT DATENAME(dw, @cntDate) = 'Sunday')
BEGIN
SET @dayDiff = @dayDiff + 1
END
SET @cntDate = dateadd(day,1,@cntDate)
SET @cnt = @cnt + 1
END
--SET @dayDiff = convert(decimal(18,2),@ntdate-@nfdate) --datediff(day,@nfdate,@ntdate)
--SELECT @dayDiff
set @fdate = convert(varchar,datepart(yyyy,@fdate)) + '-' + convert(varchar,datepart(mm,@fdate)) + '-' + convert(varchar,datepart(dd,@fdate)) + ' ' + @nfTime
set @tdate = convert(varchar,datepart(yyyy,@tdate)) + '-' + convert(varchar,datepart(mm,@tdate)) + '-' + convert(varchar,datepart(dd,@tdate)) + ' ' + @ntTime
set @markerFDate = convert(varchar,datepart(yyyy,@fdate)) + '-' + convert(varchar,datepart(mm,@fdate)) + '-' + convert(varchar,datepart(dd,@fdate)) + ' ' + '17:00:00'
set @markerTDate = convert(varchar,datepart(yyyy,@tdate)) + '-' + convert(varchar,datepart(mm,@tdate)) + '-' + convert(varchar,datepart(dd,@tdate)) + ' ' + '08:00:00'
--select @fdate,@tdate
--select @markerFDate,@markerTDate
set @hrsDiff = convert(decimal(18,2),datediff(hh,@fdate,@markerFDate))
--select @hrsDiff
set @hrsDiff = @hrsDiff + convert(int,datediff(hh,@markerTDate,@tdate))
--select @fdate,@tdate
IF convert(varchar,datepart(yyyy,@fdate)) + '-' + convert(varchar,datepart(mm,@fdate)) + '-' + convert(varchar,datepart(dd,@fdate)) = convert(varchar,datepart(yyyy,@tdate)) + '-' + convert(varchar,datepart(mm,@tdate)) + '-' + convert(varchar,datepart(dd,@tdate))
BEGIN
--SET @hrsDiff = @hrsDiff - 9
Set @hrsdiff = datediff(hour,@fdate,@tdate)
END
--select FLOOR((@hrsDiff / 9))
IF (@hrsDiff / 9) > 0
BEGIN
SET @dayDiff = @dayDiff + FLOOR(@hrsDiff / 9)
SET @hrsDiff = @hrsDiff - FLOOR(@hrsDiff / 9)*9
END
--select convert(varchar(50),@dayDiff) + ' Days ' + convert(varchar(50),@hrsDiff) + ' Hours'
RETURN(convert(varchar(50),@dayDiff) + ' Days ' + convert(varchar(50),@hrsDiff)) + ' Hours'
END
В этом учебном пособии вы узнаете, как использовать функцию DATEDIFF в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
В SQL Server (Transact-SQL) функция DATEDIFF возвращает разность между двумя значениями даты в зависимости от указанного интервала.
Синтаксис
Синтаксис функции DATEDIFF в SQL Server (Transact-SQL):
DATEDIFF( interval, date1, date2 )
Параметры или аргументы
interval – интервал времени для вычисления разницы между date1 и date2. Это может быть одно из следующих значений:
Значение (любое из) | Пояснение |
---|---|
year, yyyy, yy | Год интервал |
quarter, qq, q | Квартал интервал |
month, mm, m | Месяца интервал |
dayofyear | День года интервал |
day, dy, y | День интервал |
week, ww, wk | Неделя интервал |
weekday, dw, w | День недели интервал |
hour, hh | Час интервал |
minute, mi, n | Минуты интервал |
second, ss, s | Секунды интервал |
millisecond, ms | Миллисекунды интервал |
microsecond, mcs | Микросекунды интервал |
nanosecond, ns | Наносекунды интервал |
date1, date2 – две даты для расчета разницы между ними.
Применение
Функция DATEDIFF может использоваться в следующих версиях SQL Server (Transact-SQL):
SQL Server vNext, SQL Server 2016, SQL Server 2015, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005
Пример
Рассмотрим некоторые примеры SQL Server функции DATEDIFF, чтобы понять, как использовать функцию DATEDIFF в SQL Server (Transact-SQL). Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
SELECT DATEDIFF(year, ‘25.12.2015’, ‘25.12.2017’); –Результат: 2 SELECT DATEDIFF(yyyy, ‘25.12.2015’, ‘25.12.2017’); –Результат: 2 SELECT DATEDIFF(yy, ‘25.12.2015’, ‘25.12.2017’); –Результат: 2 SELECT DATEDIFF(month, ‘01.09.2017’, ‘25.12.2017’); –Результат: 3 SELECT DATEDIFF(day, ‘01.09.2017’, ‘25.12.2017’); –Результат: 115 SELECT DATEDIFF(hour, ‘25.12.2017 08:00’, ‘25.12.2017 10:45’); –Результат: 2 SELECT DATEDIFF(minute, ‘25.12.2017 08:00’, ‘25.12.2017 10:45’); –Результат: 165 |
GETDATE: возвращает текущую локальную дату и время на основе системных часов в виде объекта datetime
SELECT GETDATE() -- 2017-07-28 21:34:55.830
GETUTCDATE: возвращает текущую локальную дату и время по гринвичу (UTC/GMT) в виде объекта datetime
SELECT GETUTCDATE() -- 2017-07-28 18:34:55.830
SYSDATETIME: возвращает текущую локальную дату и время на основе системных часов, но отличие от GETDATE состоит в том, что
дата и время возвращаются в виде объекта datetime2
SELECT SYSDATETIME() -- 2017-07-28 21:02:22.7446744
SYSUTCDATETIME: возвращает текущую локальную дату и время по гринвичу (UTC/GMT) в виде объекта
datetime2
SELECT SYSUTCDATETIME() -- 2017-07-28 18:20:27.5202777
SYSDATETIMEOFFSET: возвращает объект datetimeoffset(7), который содержит дату и время относительно
GMT
SELECT SYSDATETIMEOFFSET() -- 2017-07-28 21:02:22.7446744 +03:00
DAY: возвращает день даты, который передается в качестве параметра
SELECT DAY(GETDATE()) -- 28
MONTH: возвращает месяц даты
SELECT MONTH(GETDATE()) -- 7
YEAR: возвращает год из даты
SELECT YEAR(GETDATE()) -- 2017
DATENAME: возвращает часть даты в виде строки. Параметр выбора части даты передается в качестве первого параметра, а сама дата передается в
качестве второго параметра:
SELECT DATENAME(month, GETDATE()) -- July
Для определения части даты можно использовать следующие параметры (в скобках указаны их сокращенные версии):
-
year (yy, yyyy)
: год -
quarter (qq, q)
: квартал -
month (mm, m)
: месяц -
dayofyear (dy, y)
: день года -
day (dd, d)
: день месяца -
week (wk, ww)
: неделя -
weekday (dw)
: день недели -
hour (hh)
: час -
minute (mi, n)
: минута -
second (ss, s)
: секунда -
millisecond (ms)
: миллисекунда -
microsecond (mcs)
: микросекунда -
nanosecond (ns)
: наносекунда -
tzoffset (tz)
: смешение в минутах относительно гринвича (для объекта datetimeoffset)
DATEPART: возвращает часть даты в виде числа. Параметр выбора части даты передается в качестве первого параметра (используются те же параметры, что и для
DATENAME), а сама дата передается в качестве второго параметра:
SELECT DATEPART(month, GETDATE()) -- 7
DATEADD: возвращает дату, которая является результатом сложения числа к определенному компоненту даты. Первый параметр представляет компонент даты, описанный выше для функции DATENAME. Второй параметр – добавляемое количество. Третий параметр – сама дата, к которой надо сделать прибавление:
SELECT DATEADD(month, 2, '2017-7-28') -- 2017-09-28 00:00:00.000 SELECT DATEADD(day, 5, '2017-7-28') -- 2017-08-02 00:00:00.000 SELECT DATEADD(day, -5, '2017-7-28') -- 2017-07-23 00:00:00.000
Если добавляемое количество представляет отрицательное число, то фактически происходит уменьшение даты.
DATEDIFF: возвращает разницу между двумя датами. Первый параметр – компонент даты, который указывает, в каких единицах стоит измерять
разницу. Второй и третий параметры – сравниваемые даты:
SELECT DATEDIFF(year, '2017-7-28', '2018-9-28') -- разница 1 год SELECT DATEDIFF(month, '2017-7-28', '2018-9-28') -- разница 14 месяцев SELECT DATEDIFF(day, '2017-7-28', '2018-9-28') -- разница 427 дней
TODATETIMEOFFSET: возвращает значение datetimeoffset, которое является результатом сложения временного
смещения с объектом datetime2
SELECT TODATETIMEOFFSET('2017-7-28 01:10:22', '+03:00')
SWITCHOFFSET: возвращает значение datetimeoffset, которое является результатом сложения временного
смещения с другим объектом datetimeoffset
SELECT SWITCHOFFSET(SYSDATETIMEOFFSET(), '+02:30')
EOMONTH: возвращает дату последнего дня для месяца, который используется в переданной в качестве параметра дате.
SELECT EOMONTH('2017-02-05') -- 2017-02-28 SELECT EOMONTH('2017-02-05', 3) -- 2017-05-31
В качестве необязательного второго параметра можно передавать количество месяцев, которые необходимо прибавить к дате. Тогда последний день месяца будет вычисляться для новой даты.
DATEFROMPARTS: по году, месяцу и дню создает дату
SELECT DATEFROMPARTS(2017, 7, 28) -- 2017-07-28
ISDATE: проверяет, является ли выражение датой. Если является, то возвращает 1, иначе возвращает 0.
SELECT ISDATE('2017-07-28') -- 1 SELECT ISDATE('2017-28-07') -- 0 SELECT ISDATE('28-07-2017') -- 0 SELECT ISDATE('SQL') -- 0
В качестве примера использования функций можно привести создание таблицы заказов, которая содержит дату заказа:
Выражение DEFAULT GETDATE()
указывает, что если при добавлении данных не передается дата, то она автоматически вычисляется с помощью функции GETDATE().
Приветствую Вас, уважаемые читатели блога webcodius.ru. В базе данных часто требуется хранить различные данные связанные с датой и временем. Это может быть дата добавления информации, дата регистрации пользователя, время последней автоизации и другие данные. В языке SQL есть множество функций связанных с датой и временем, сегодня их и рассмотрим.
Все ниже рассмотренные функции работают с календарными типами данных.
Получение текущей даты и времени.
Чтобы получить текущую дату и время используется функция NOW ().
Пример:
SELECT NOW ()
Результат: 2015-09-25 14:42:53
Для получения только текущей даты есть функция CURDATE ().
Пример:
SELECT CURDATE ()
Результат: 2015-09-25
И функция CURTIME (), которая возвращает только текущее время:
Пример:
SELECT CURTIME ()
Результат: 14:42:53
Функции CURDATE () и NOW () удобно использовать для добавления в базу данных записей, для которых требуется хранить дату добавления. Например, при добавлении статьи на сайт хорошо бы хранить ее дату публикации. Тогда запрос на добавление статьи в базу будет примерно таким:
INSERT INTO posts (id_post, text_post, date_publication) VALUES (1, ‘текст статьи’, NOW ());
Прибавление и вычитание дат и времени
Функция ADDDATE (date, INTERVAL value) прибавляет к дате date
значение value
и возвращает полученное значение. В качестве value
могут выступать следующие значения:
- SECOND — секунды
- MINUTE — минуты
- HOUR — часы
- DAY — дни
- WEEK — недели
- MONTH — месяцы
- QUARTER — кварталы
- YEAR — годы
а также их комбинации:
- MINUTE_SECOND — минуты и секунды
- HOUR_SECONDчасы — минуты и секунды
- HOUR_MINUTE — часы и минуты
- DAY_SECOND — дни, часы, минуты и секунды
- DAY_MINUTE — дни, часы и минуты
- DAY_HOUR — дни и часы
- YEAR_MONTH — года и месяцы.
Пример:
SELECT ADDDATE (‘2015-09-28 10:30:20’, INTERVAL 1 DAY)
Результат: 2015-09-29 10:30:20
или
SELECT ADDDATE (‘2015-09-28 10:30:20’, INTERVAL ‘3 1:20’ DAY_MINUTE)
Результат: 2015-10-01 11:50:20
Функция SUBDATE (date, INTERVAL value) производит вычитание значения value
из даты date
. Пример:
SELECT SUBDATE (‘2015-09-28 10:30:20’, INTERVAL 20 HOUR)
Результат: 2015-09-27 14:30:20
Функция PERIOD_ADD (period, n) прибавляет к значению period
n
месяцев. Значение период должно быть представлено в формате YYYYMM
(например сентябрь 2015 года будет 201509). Пример:
SELECT PERIOD_ADD (201509, 4)
Результат: 201601
Функция TIMESTAMPADD (interval, n, date) прибавляет к дате date
временной интервал n
, значения которого задаются параметром interval
. Возможные значения параметра interval:
- FRAC_SECOND — микросекунды
- SECOND — секунды
- MINUTE — минуты
- HOUR — часы
- DAY — дни
- WEEK — недели
- MONTH — месяцы
- QUARTER — кварталы
- YEAR — годы
Пример:
SELECT TIMESTAMPADD (QUARTER, 1, ‘2015-09-28’)
Результат: 2015-12-28
Функция SUBTIME (date, time) вычитает из даты date время time. Пример:
SELECT SUBTIME (‘2015-09-28 10:30:20′, ’50:20:19’)
Результат: 2015-09-26 08:10:01
Вычисление интервала между датами
Функция TIMEDIFF (date1, date2) вычисляет разницу в часах, минутах и секундах между двумя датами date1
и date2
. Пример:
SELECT TIMEDIFF (‘2015-09-28 10:30:20’, ‘2015-09-29 10:30:20’)
Результат: -24:10:00
Функция DATEDIFF (date1, date2) вычисляет разницу в днях между двумя датами, при этом часы, минуты и секунды при указании дат игнорируются. Пример:
SELECT DATEDIFF (‘2015-09-28 00:00:20’, ‘2015-09-27 23:40:20’)
Результат: 1
С помощью этой функции легко определить сколько дней прошло с даты публикации статьи:
SELECT DATEDIFF (CURDATE (), date_publication) FROM posts WHERE id_post = 1
Функция PERIOD_DIFF (period1, period2) вычисляет разницу в месяцах между двумя датами. Даты должны быть представлены в формате YYYYMM
. Например, узнаем сколько месяцев прошло с января 2015 по сентябрь 2015:
SELECT PERIOD_DIFF (201509, 201501)
Результат: 9
Функция TIMESTAMPDIFF (interval, date1, date2) вычисляет разницу между датами date2
и date1
в единицах указанных в параметре interval
. При этом interval
может принимать следующие значения:
- FRAC_SECOND — микросекунды
- SECOND — секунды
- MINUTE — минуты
- HOUR — часы
- DAY — дни
- WEEK — недели
- MONTH — месяцы
- QUARTER — кварталы
- YEAR — годы
Пример:
SELECT TIMESTAMPDIFF (HOUR, ‘2015-09-28 10:30:20’, ‘2015-09-28 19:50:20’)
Результат: 9
Получение различных форматов даты и времени и другой информации
Функция DATE (datetime) возвращает дату, отсекая время. Пример:
SELECT DATE (‘2015-09-28 10:30:20’)
Результат: 2015-09-28
Функция TIME (datetime) возвращает время, отсекая дату. Пример:
SELECT TIME (‘2015-09-28 10:30:20’)
Результат: 10:30:20
Функция TIMESTAMP (date) возвращает полный формат со временем даты date
. Пример:
TIMESTAMP (‘2015-09-28’)
Результат: 2015-09-28 00:00:00
DAY (date) и DAYOFMONTH (date). Функции-синонимы, которые возвращают порядковый номер дня месяца. Пример:
SELECT DAY (‘2015-09-28’), DAYOFMONTH (‘2015-09-28’)
Результат: 28 | 28
Функции DAYNAME (date), DAYOFWEEK (date) и WEEKDAY (date). Первая функция возвращает название дня недели, вторая — номер дня недели (отсчет от 1 — воскресенье до 7 — суббота), третья также номер дня недели только другой отсчет(отсчет от 0 — понедельник, до 6 — воскресенье). Пример:
SELECT DAYNAME (‘2015-09-28’), DAYOFWEEK (‘2015-09-28’), WEEKDAY (‘2015-09-28’)
Результат: Monday 2 | 0
Функции WEEK (date) и WEEKOFYEAR (datetime). Обе функции возвращают номер недели в году, только у первой неделя начинается с воскресенья, а у второй с понедельника. Пример:
SELECT WEEK (‘2015-09-28 10:30:20’), WEEKOFYEAR (‘2015-09-28 10:30:20’)
Результат: 39 | 40
Функция MONTH (date) возвращает числовое значение месяца (от 1 до 12), а MONTHNAME (date) название месяца. Пример:
SELECT MONTH (‘2015-09-28 10:30:20’), MONTHNAME (‘2015-09-28 10:30:20’)
Результат: 9 | September
Функция QUARTER (date) возвращает номер квартала года (от 1 до 4). Пример:
SELECT QUARTER (‘2015-09-28 10:30:20’)
Результат: 3
Функция YEAR (date) возвращает значение года (от 1000 до 9999). Пример:
SELECT YEAR (‘2015-09-28 10:30:20’)
Результат: 2015
Функция DAYOFYEAR (date) возвращает порядковый номер дня в году (от 1 до 366). Прмиер:
SELECT DAYOFYEAR (‘2015-09-28 10:30:20’)
Результат: 271
Функция HOUR (datetime) возвращает значение часа (от 0 до 23). Пример:
SELECT HOUR (‘2015-09-28 10:30:20’)
Результат: 10
Функция MINUTE (datetime) возвращает значение минут (от 0 до 59). Пример:
SELECT MINUTE (‘2015-09-28 10:30:20’)
Результат: 30
Функция SECOND (datetime) возвращает значение секунд (от 0 до 59). Пример:
SELECT SECOND (‘2015-09-28 10:30:20’)
Результат: 20
Функция EXTRACT (type FROM date) возвращает часть даты date
определяемую параметром type
. Пример:
SELECT EXTRACT (YEAR FROM ‘2015-09-28 10:30:20’), EXTRACT (MONTH FROM ‘2015-09-28 10:30:20’), EXTRACT (DAY FROM ‘2015-09-28 10:30:20’), EXTRACT (HOUR FROM ‘2015-09-28 10:30:20’), EXTRACT (MINUTE FROM ‘2015-09-28 10:30:20’), EXTRACT (SECOND FROM ‘2015-09-28 10:30:20’)
Результат: 2015 | 9 | 28 | 10 | 30 | 20
Взаимообратные функции TO_DAYS (date) и FROM_DAYS (n). Первая преобразует дату в количество дней, прошедших с нулевого года. Вторая, наоборот, принимает число дней, прошедших с нулевого года и преобразует их в дату. Пример:
SELECT TO_DAYS (‘2015-09-28 10:30:20’), FROM_DAYS (736234)
Результат: 736234 | 2015-09-28
Взаимообратные функции UNIX_TIMESTAMP (date) и FROM_UNIXTIME (n). Первая преобразует дату в количество секунд, прошедших с 1 января 1970 года. Вторая, наоборот, принимает число секунд, с 1 января 1970 года и преобразует их в дату. Пример:
SELECT UNIX_TIMESTAMP (‘2015-09-28 10:30:20’), FROM_UNIXTIME (1443425420)
Результат: 1443425420 | 2015-09-28 10:30:20
Взаимообратные функции TIME_TO_SEC (time) и SEC_TO_TIME (n). Первая преобразует время в количество секунд, прошедших от начала суток. Вторая, наоборот, принимает число секунд с начала суток и преобразует их во время. Пример:
SELECT TIME_TO_SEC (’10:30:20′), SEC_TO_TIME (37820)
Результат: 37820 | 10:30:20
Функция MAKEDATE (year, n) принимает год year
и номер дня в году n
и преобразует их в дату. Пример:
SELECT MAKEDATE (2015, 271)
Результат: 2015-09-28
На этом все, до новых встреч!