MySQL: "Bu haftaki tarihini" almak için nasıl

3 Cevap php

Ben bugün 5 olayları alma hakkında bu SQL sorgusu vardır:

SELECT n.nid, n.type, n.title, nr.body, nr.teaser, FROM_UNIXTIME(e.event_start) start_date, FROM_UNIXTIME(e.event_end) end_date
FROM node n
LEFT JOIN event e ON n.nid = e.nid
LEFT JOIN node_revisions nr ON nr.nid = e.nid
WHERE n.`type` = 'event'
AND NOW() BETWEEN FROM_UNIXTIME(e.event_start) AND FROM_UNIXTIME(e.event_end)
ORDER BY n.`created` DESC
LIMIT 5

Sonra ben bugün "ve bir Pazar günü başlar" "içeren bir hafta" kullanarak "bu haftaki olayı" almak gerekir.

MySQL Bunu nasıl yapabilirim?

Herhangi bir yardım büyük mutluluk duyacağız. Şimdiden teşekkürler :)

Cheers, Mark

3 Cevap

Eğer bugün merkezli 7 gün sürgülü pencere, ya da örneğin başlayan hafta ("bugün" içeren bir) demek istiyorsun - Siz "bu hafta" daha iyi tanımlamak gerekir Bir Pazar günü? Yani "bu hafta" semantik tamamen bağımlı bulunuyor ve bizi muğlâk ifade dedi ne kastedildiğini karar için imkansız. Eğer söz iki yaklaşımdan, bir ya da diğer (veya varyant bunun) ve anlam olarak uygun olacaktır.

Edit: OP o, bugün "ve bir Pazar günü başlıyor" "içeren bir hafta" anlamına gelir, bir açıklamada açıklık getirdi - ve ben FROM_UNIXTIME onun kullanımı anlamak olduğunu O hedef alıyor, belirli SQL lehçesi MySQL. Ardından, WEEK(somedate, 0) tam olarak ne istediğini, bkz mysql's docs ona vermelidir MySQL fonksiyonudur.

Özellikle,

AND WEEK(CURDATE, 0) BETWEEN WEEK(FROM_UNIXTIME(e.event_start), 0)
                         AND WEEK(FROM_UNIXTIME(e.event_end), 0)

OP arıyor WHERE fıkra olmalıdır.

Bu, SQL Server veya MySQL için ise emin değilim, ama MySQL size date_add çıkarmak için bugün geçerli weekday almak ve daha sonra kullanabileceği geçerli tarihten itibaren kaç gün 7 gün (bitiş tarihi) eklemek için yeniden date_add kullanmak, başlangıç ​​tarihini kullanarak sonra (başlangıç ​​tarihi).

Umarım yardımcı olur, size sözdizimi ile yardıma ihtiyacınız varsa bana bildirin.

Tablo / sütun isimleri dayalı, size Drupal ile çalışıyoruz görünür. Eğer hedefe ulaşmak için bir görünüm kullanarak düşündünüz mü? Ben bu size sadece bir blok görüntülemek için olayların bir listesini isteyip uzak takmayı tutmak, ya da bu durumda, yazıyoruz bir modülün parçası olup olmadığını bağlamdan söyleyemem, bu durumda bir görünüm gerekir PHP / SQL ile karıştırmasını olmadan sizin için tüm bunu yapmak için.