Как вы можете получить сегодняшнюю дату и преобразовать ее в формат 01/mm /yyyy
и получить данные из таблицы с месяцем поставки 3 месяца назад? Таблица уже содержит месяц доставки 01/mm/yyyy
.sql запрос для получения данных за последние 3 месяца
ответ
SELECT *
FROM TABLE_NAME
WHERE Date_Column >= DATEADD(MONTH, -3, GETDATE())
Предложенный метод Mureinik будет возвращать те же результаты, но делать это таким образом, ваш запрос может извлечь выгоду из любых индексов на Date_Column
,
или вы можете проверить последние 90 дней.
SELECT *
FROM TABLE_NAME
WHERE Date_Column >= DATEADD(DAY, -90, GETDATE())
На самом деле вы можете сделать 'GETDATE() - 90' вместо' DATEADD (DAY, -90, GETDATE()) ' –
@huMptyduMpty Но 3 месяца не обязательно 90 дней, потому что месяцы могут иметь 30 или 31 день (или даже 28 или 29, если принять во внимание февраль) – AlexB
Я хотел бы использовать datediff
, а не заботиться о преобразования форматов:
SELECT *
FROM mytable
WHERE DATEDIFF(MONTH, my_date_column, GETDATE()) <= 3
Последние версии MySQL не поддерживают DATEADD вместо этого использовать синтаксис
DATE_ADD(date,INTERVAL expr type)
Чтобы получить последние 3 месяца использования данных,
DATE_ADD(NOW(),INTERVAL -90 DAY)
DATE_ADD(NOW(), INTERVAL -3 MONTH)
Последние 3 месяца
SELECT DATEADD(dd,DATEDIFF(dd,0,DATEADD(mm,-3,GETDATE())),0)
Сегодня
SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0)
'WHERE Convert (DATE, TableColumn)> = GETDATE() - 90' ?? Вы что-нибудь пробовали? –
Почему вы храните дату в виде символьной строки? Вы должны исправить таблицу. –
Месяц создается в таблице с даты поставки в формате 01/мм/гггг. Это делается для удобства использования позже для php. Поэтому, чтобы получить определенный тип доставки за последние 3 месяца, я думал получить сегодняшнюю дату и преобразовать ее в формат 01/мм/гггг и вернуть ее с месяцем доставки в таблице, чтобы получить минимум 3 месяца, включая данные текущего месяца , – user88866050