2013-12-01 5 views
3

Я пытаюсь получить SQL-запрос, чтобы выбрать все записи за прошлый месяц, у меня есть то, что из многих мест - именно то, что мне нужно, и должны работать:Ошибка: DATEPART не существует, frp, SQL, чтобы выбрать записи за последние месяцы

SELECT * 
FROM orders 
WHERE DATEPART(yy,DateOrdered) = DATEPART(yy,DATEADD(m,-1,GETDATE())) 
AND DATEPART(m,DateOrdered) = DATEPART(m,DATEADD(m,-1,GETDATE())) 

Однако я получаю ошибку:

#1305 - FUNCTION retail.DATEPART does not exist 

запроса Я использую это слово в слово из других ответов здесь, но я получаю эту ошибку.

Спасибо за любую помощь -Tom

ответ

4

DATEPART функция Transact-SQL, пригодный для использования с Microsoft SQL Server. Из тегов вопросов я предполагаю, что вы используете MySQL в качестве вашей системы управления базами данных.

Посмотрите на MySQL DATEDIFF

+0

ahhh, я по-прежнему довольно новичок во всем этом и продолжаю ускользать по разным SQL. Спасибо. – Vereonix

2

Что бы работать в MySQL. Для того, чтобы перевести это в MySQL вы можете сделать:

SELECT * 
FROM orders 
WHERE YEAR(DateOrdered) = YEAR(DATE_SUB(CURDATE(), INTERVAL -1 MONTH)) 
AND MONTH(DateOrdered) = MONTH(DATE_SUB(CURDATE(), INTERVAL -1 MONTH)) 

См here для дат функций, доступных в MySQL.

0

Он также будет работать.

SELECT * 
FROM orders 
WHERE MONTH(DateOrdered) = MONTH(CURRENT_DATE() - INTERVAL 1 MONTH) 
AND YEAR(DateOrdered) = YEAR(CURRENT_DATE() - INTERVAL 1 MONTH) 

 Смежные вопросы

  • Нет связанных вопросов^_^