2013-08-06 23 views
20

İlk kurşunun I olarak çalışması gerekir inanıyoruz aşağıdaki iki yöntemi kullanarak MySQL zaman damgası alanına biçimlendirilmiş tarih ve zaman dize eklemek için çalıştık ama hem bana 00:00:00Özel tarih mysql zaman damgası alanına nasıl eklenir?

INSERT INTO test VALUES (UNIX_TIMESTAMP('2013-08-05 18:19:03')) 
INSERT INTO test VALUES (UNIX_TIMESTAMP(STR_TO_DATE('2013-08-05 18:19:03', '%Y-%m-%d %H:%i:%s'))) 

0000-00-00 gösterir Beklemiyorum ama neden tarih ve saati ayrıştırmıyorsunuz?

+0

'UNIX_TIMESTAMP 'kullanımınızda, mysql altındaki' unix zaman damgası öğelerinizi SELECT kullanarak gerçekleştirebildiğiniz gibi yanlış bir şey yoktur. Masanızda birden fazla sütun var mı? Ya da belki de sütun için veri türü int'den başka bir şeydir (çünkü UNIX_TIMESTAMP ifadesi budur)? – GreatBigBore

+0

'INSERT' ifadelerinizi mysql'ye girmeyi deneyin ve nasıl yanıt verdiğini görün. – GreatBigBore

+0

@GreatBigBore Tarzım zaman damgası, tarih ve saat sütunu değil ve sadece bir sütun var – Maximus

cevap

24

Sorun şu ki, alanınız TIMESTAMP olarak tanımlanmıştır, ancak UNIX_TIMESTAMP bir int döndürür. Bunun yerine INSERT INTO test VALUES ('2013-08-05 18:19:03') kullanın.

+0

Bu işe yaradı! Teşekkürler. Strtotime php işlevlerinin neden iyi çalıştığını merak ediyorum ama mysql sorgusunda UNIX_TIMESTAMP değil? Tarih fonksiyonunda unix_timestamp değerini geçtiğimde bana 43 yıl geri dönüş tarihini gösterir. – Maximus

+0

Muhtemelen kullandığınız PHP fonksiyonları, UNIX_TIMESTAMP' tarafından döndürülen int'den başka bir şey beklemekten kaynaklanıyordur. Belgeleri dikkatlice kontrol edin ve muhtemelen problemi bulacaksınız. – GreatBigBore

İlgili konular