2016-04-12 24 views
1

Mysql veritabanı tarih alanını sorguda strtotime gibi zaman damgasına dönüştürmenin herhangi bir yolu var mı?Sorgulamada tarih zaman damgasını dönüştürme işlemi nasıl yapılır

kodum:

$this->db->where('effectdate >= ',$start_date); 
    $this->db->where('effectdate <= ',$end_date); 
    $query = $this->db->get(); 

$ start_date ve $ end_date damgası değerlerdir ancak veritabanı değer zaman damgası uygulamak için tarih dönüştürmek için aşağıdaki zaten normaldir date.Is nedir? Lütfen yardım edin.

+0

Cevabınız için teşekkür ederiz, sorgulamanın herhangi bir yolu var mı? – youv

+0

'$ start_date' biçiminde post .. bu böyle: ** 1222093324 ** –

+0

' sorgu kendisi ile ne demek istiyorsun? –

cevap

0

) varchar => tarih (bugüne kadar dize dönüştürme // bu

$this->db->where('effectdate >= ',date('Y-m-d', strtotime($start_date))); 
$this->db->where('effectdate <= ',date('Y-m-d', strtotime($end_date)))); 
$query = $this->db->get(); 
+0

dönüştürebilirsiniz. Teşekkürler Aslında, etki tarihini dönüştürmem gerekiyor, bu mümkün – youv

+0

Bunu deneyin DATE_FORMAT (etki, '% Y-% m-% d') '. Bu bağlantıyı da kontrol edin http://www.w3schools.com/sql/func_date_format.asp –

+1

@Abdulla çok aktif bir adamsın, birçok soruya cevap buldum cevabını gerçekten çok etkiledim –

1

yerine >= & <= kullanımını between

2

1) STR_TO_DATE() kullanmanın

$this->db->where('UNIX_TIMESTAMP(effectdate) >= ',$start_date); 
$this->db->where('UNIX_TIMESTAMP(effectdate) <= ',$end_date); 
$query = $this->db->get(); 

deneyin deneyin .

2) UNIX_TIMESTAMP() // tarihi, unix zaman damgasına dönüştürür (tarih => zaman damgası).

$this->db->where('UNIX_TIMESTAMP(STR_TO_DATE(effectdate, "%Y-%m-%d")) >= ',$start_date); 
$this->db->where('UNIX_TIMESTAMP(STR_TO_DATE(effectdate, "%Y-%m-%d")) <= ',$end_date); 

Not:% Y-% m-% d, dize sütunundaki tarih biçimidir. Lütfen, tarih biçiminizle değiştiriniz.

İlgili konular