2016-04-16 2 views
1

У меня есть столбец даты со списком сохраненных дат. Я хочу получать каждую субботу и четверг данные в каждую пятницу с помощью mysql. Как я могу это сделать?Как получить каждую субботу и четверг данные в каждую пятницу с помощью mysql

я пытался с этим запросом, но не знаю, как это сделать с моими требованиями

SET DATEFIRST 1 -- Define beginning of week as Monday 
SELECT [...] 
AND WorkDate >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) 
AND WorkDate < dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate())) 
+0

Вы можете использовать триггер для этого –

+0

я просто хочу запрос, как писать запрос я не знаю, как получить запрос на mysql для этой логики, если писать логику, чтобы получить субботу до вторника, поэтому я могу запустить работу cron за пятницу – Sandy

+0

Итак, вот два вопроса: сначала получите данные, которые сидят, и второй выполнить запрос каждые friday –

ответ

1

Вы можете передать этот запрос на получение данных с субботы по четверг.

1 Day= 86400 seconds // так что вы можете установить интервал в соответствии с диапазоном дневного

Примечание: Это логика только, вы можете управлять вашим запросом. MySQL уже имеет такие функции, как DAYOFWEEK(), DATE(NOW())

Я ссылаюсь на эту ссылку Для подробной детали: Date & Time Function in MySQL

SELECT 
    satwk_beg + INTERVAL 0 second sat_beg, 
    satwk_beg + INTERVAL 518399 second thu_end 
    FROM (SELECT (DATE(NOW()) - INTERVAL daysbacktothursday DAY) satwk_beg 
    FROM (SELECT SUBSTR('1234560',wkndx,1) daysbacktothursday 
    FROM (SELECT DAYOFWEEK(dt) wkndx FROM (SELECT DATE(NOW()) dt) AAAA) AAA) AA) A; 

Просто запустите выше запрос и проверить, вы получите выход с субботы по четверг.

Вот ряд других недель,

  • (SELECT SUBSTR('6',wkndx,1) делает неделю, начиная пн окончание Sun
  • (SELECT SUBSTR('56',wkndx,1) делает неделю начиная Tue окончание пн
  • (SELECT SUBSTR('4560123',wkndx,1) делает неделю начиная ср окончание вт
  • (SELECT SUBSTR('3456012',wkndx,1) делает неделю, начиная с конца, заканчивается Wed
  • (SELECT SUBSTR('2345601',wkndx,1) делает неделю, начиная пт окончания чт
  • (SELECT SUBSTR('1234560',wkndx,1) делает недели начиная Sat окончание пт
  • (SELECT SUBSTR('',wkndx,1) делает неделю, начиная Sun окончание сб
+0

Немного путайте ваш запрос У меня есть имя столбца с датами в формате 29-03-2016 i confused wit h имя wkndx id it имя столбца? и что такое dt? – Sandy

+0

Это логично только для данных dumy. Вы можете управлять этим запросом по базе данных. и mysql, у которого есть все функции, вы можете получить более подробную информацию об этом http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html Первый экземпляр выше запроса и выполнить в mysql, а затем просмотреть результаты и научитесь с ручной отладкой того, что происходит .... –

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