2012-03-28 23 views
40

Bir tarihin farklı bir biçimde nasıl sorgulanacağını öğrenmek istediğim bir soruyu sormaya çalışıyorum. Ama şimdi bu yöntemi kullanarak bir ekleme yapmaya çalışıyorum (aşağıya bakın) ancak işe yaramayacağım. Kılavuzu kontrol ettim ama başlangıç ​​dostu değil!MySQL tarih biçimleri - zorluk Bir tarih ekleme

INSERT INTO custorder VALUES ('Kevin','yes'), STR_TO_DATE('1-01-2012', '%d-%m-%Y'); 
+2

Tek tırnakların yanlış yerleştirilmesi ' – Baba

+1

PHP ile ilgisi yoktur. – Flukey

+1

-1 oyundu çünkü bir php etiketine koydum ... üzgünüm. çünkü php değişkenlerini kullanıyorum ... düşünmüyordum! – Phil

cevap

89

tek tırnak içinde tarih koyun ve ('yes' sonra) parantez hareket sonuna kadar:

INSERT INTO custorder 
    VALUES ('Kevin', 'yes' , STR_TO_DATE('1-01-2012', '%d-%m-%Y')) ; 
         ^         ^
---parenthesis removed--|    and added here ------| 

Ama her zaman sadece (kullanın STR_TO_DATE() fonksiyonu olmadan tarihleri ​​kullanabilirsiniz Ymd) '20120101' veya '2012-01-01' biçimi. MySQL docs kontrol edin: düzgün dize kapsüllü ettik gibi Date and Time Literals

INSERT INTO custorder 
    VALUES ('Kevin', 'yes', '2012-01-01') ; 
+0

Beni Date and Time Literals bölümüne yönlendirdiğiniz için teşekkür ederim. Şimdi anladığım kadarıyla 20120101 veya "20120101" tarih alanına girdiğimde MySQL onu tanıyacaktır. PHP büyüsü ya da aksaklık olduğunu düşündüm. – Marecky

9

görünüyor. Bu deneyin:

INSERT INTO custorder VALUES ('Kevin','yes'), STR_TO_DATE('1-01-2012', '%d-%m-%Y'); 

Alternatif olarak, aşağıdakileri yapabilirsiniz:

INSERT INTO custorder VALUES ('Kevin','yes'), '2012-01-01'; 

Ben ancak, yukarıdaki SQL geçerli olduğundan emin değilim ve sen içine tarih bölümünü taşımak isteyebilirsiniz parantez. Tam olarak aldığınız hatayı sağlayabiliyorsanız, sorunla doğrudan daha doğrudan yardımcı olabiliriz.

4

mysql insert sorgusu için tarih biçimini YYYY-MM-DD

örnektir:

INSERT INTO table_name (date_column) VALUE ('YYYY-MM-DD'); 
0

bir eklenti bu endişe rastladım beri önceki cevaplara:

Eğer gerçekten isterseniz 24-May-2005 gibi bir şey eklemek için DATE sütununa aşağıdaki gibi bir şey yapabilirsiniz:

INSERT INTO someTable(Empid,Date_Joined) 
VALUES 
    ('S710',STR_TO_DATE('24-May-2005', '%d-%M-%Y')); 

Yukarıdaki sorguda, May (ör. Harflerdeki ay) biçimi %M olmalıdır.

NOT: Bunu en son MySQL sürüm 8.0 ile denedim ve işe yarıyor!