Ben şu soru var:
Bu benim Create-tablo:
CREATE TABLE `mod_users` (
`u_id` int(11) NOT NULL auto_increment,
`u_date` datetime NOT NULL,
`u_type` int(1) NOT NULL default '',
`u_adddate` datetime NOT NULL,
PRIMARY KEY (`u_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
u_type bir tür aralık temsil bir int (doh) içeriyor.
1 = one week
2 = two weeks
3 = one month
4 = one year
(Yani bir hafta, bir ay olur, 2 hafta 13 gün olur, 6 gün olur bir gün - Ben u_type aralığının düşüyor geçerli tarihten sonra ilk tarih seçmek istiyorsanız: 1 ay - 1 gün, bir yıl olur: Bir yıllık -1 u_date bir başlangıç ile gün). Kafa karıştırıcı doğru geliyor.
An example:
If an user has type 1 (one week) And u_date 2010-11-01 00:00:00 (Four days ago) I want to get the first occurrence after one week. In this case 'SELECT DATE_ADD(u_date,INTERVAL 6 DAYS) from mod_users WHERE u_id = 1';
(which gives 2010-11-07 00:00:00) How can i do this for u_type 3 or 4? something like 'SELECT DATE_ADD(u_date,INTERVAL 1 MONTH - 1 DAYS) from mod_users WHERE u_id = 1';
?? This is not a valid query.
Geçerli tarih 2010-11-08 olurdu Ayrıca ben, bu tarihten sonra ilk geçtiği olsun ister. Bu durumda, 2010-11-14 de. 00:00:00. Bu, bu sorguyu reddetmek 'SELECT DATE_ADD(u_date,INTERVAL 6 DAYS) from mod_users WHERE u_id = 1';
6 gün bu sorgu doğru aralığı değildir Neden.
Biraz sizin yardımcı olabilir umuyoruz? Bu sorgular sadece bir örnek olarak kullanılır bu yüzden php ve mysql kullanabilirsiniz. Ben gerçekten çok sadece ipuçları da ipuçları duyacağız burada sıkışıp kaldım.