datetime alanlarında boş mssql_query () alanları

1 Cevap php

Windows Server 2003 (64 bit) üzerinde php 5.2.5 Koşu ve SQL Server 2008 bağlanırken

Mssql_query kullanarak SQL Server datetime alanları alma sorunları yaşıyorsunuz. Ben döner şey sorgulamak herhangi bir datetime alanı. Sorgudaki diğer tüm alanların doğru, ancak datetime alanları boştur.

Biz son zamanlarda fonksiyonları mssql_ için PEAR DB geçiş ve bu sorunun neden oldu. PEAR geri geçiş bir seçenek değildir.

Ben php.net mssql_query sayfasında buldum ve onu çalışır, ama ben sorguları yüzlerce var ve ben her sorgu güncelleme bize ihtiyaç olmazdı bir çözüm olduğunu umuyordum. Herkes her sorgu yeniden dahil olmaz daha iyi bir çözüm var mı?

"Ben mssql_query () alışılmadık bir biçimde 'datetime' sütunlar için değerleri döndürür gerçeği tarafından takıldı almak için değerlerinizin zamanki döndü. 'YYYY-AA-GG SS: DD: SS' biçiminde yapabilirsiniz böylece gibi sorguda CONVERT işlevini kullanın:

SELECT CONVERT(varchar, INVOICE_DATE, 121) AS INVOICE_DATE ...

burada 'INVOICE_DATE' 'datetime' sütunun adıdır. "

1 Cevap

Sadece bu geçici bir çözüm bulmak için bazı dize değiştirme yapıyor sona erdi.

Önce ben belki ben çalışıyordum, SQL Server DB seçim olabilir tarih alanlarında bir dizi yarattı.

Biz aracılığıyla her sorguyu çalıştırmak DB Soyutlama sınıf var.

In the DB class I check to see if "FROM" was in the query. If it was I split the string on FROM to get the SELECT fields part Then I do a foreach on the array of fields and if that field exists in the string I replace the field with CONVERT(varchar, FIELD, 121) AS FIELD

Benim için harika çalışıyor ... SELECT * ile çalışmıyor ama bizim için bir sorun herhangi SEÇİN * sorguları öyle değil kullanmayın.