2014-04-08 12 views
5

Ben tarih ve zaman bir satır eklenir bir tablo sütunu oluşturmak için sorguda bu kısmı kullanılır Bu: bir satır oluşturulur ve order_date sütun veri ayarlandığındaTarih saat SQL sütun verilerine nasıl 1 saat ekleyebilirim?</p> <p><code>order_date datetime NOT NULL DEFAULT GETDATE()</code></p> <p>ve yeni bir satır oluşturulduğunda, <code>order_date</code> için veri gibi bir şey olarak ayarlanır:

nedense

Apr 8 2014 9:52AM

, saat geriye 1 saat ayarlanır. Örneğin, Apr 8 2014 9:52AM için yukarıdaki sütun verileri 10: 52'de ayarlandı.

Geçerli saatimle doğru olması için 1 saat ileride ayarlamanın bir yolu var mı?

Yardımlarınız için teşekkür ederiz. Tüm yardımlar büyük beğeni topluyor.

+3

Kontrol SQL Server sistem zamanı. Bunu düzelt, belirtiyi değil. – MatBailie

+0

Sunucunun saat dilimi kapalı olabilir. –

+0

Yapamam, çünkü benim sunucum değil, bu yüzden saat dilimini değiştiremiyorum. – Kelsey

cevap

4

DATETIMEOFFSET'u DATETIME yerine daatype olarak kullanmayı düşünmelisiniz.

zaman dilimi bilinci vardır ve 24 saatlik temel alan bir günlük bir zaman ile birleştirilir bir tarih tanımlar.

SYSDATETIMEOFFSET( ile kullanabilirsiniz.

Returns a datetimeoffset(7) value that contains the date and time of the computer on which the instance of SQL Server is running. The time zone offset is included. 

Örnek:

CREATE TABLE DateTest (id INT, order_date DATETIMEOFFSET NOT NULL DEFAULT SYSDATETIMEOFFSET()) 
INSERT INTO DateTest (id) VALUES (1) 
SELECT * FROM DateTest 
+0

'date_default_timezone_set ('America/Edmonton');' PHP sayfamda kullanıyorum, bu yüzden umarım tarih/zaman ayarlayacaktır. Bu tür veriler için bir tablo sütunu oluşturmak için bir sorgu oluşturmaya nasıl giderim? – Kelsey

+0

SQL Server DATETIME içinde Saat Dilimi bilgisi yok, bu yüzden PHP daha fazla bilgi olmadan hiçbir şey yapamaz. Sorgu eklemek için zamana gerek kalmayabilir, ancak temelde sadece farklı türde ve farklı işlevlerle aynıdır. –

+0

Çok iyi cevap, burada bir oylama. Mümkünse soruma karşı bir oylama için minnettar olurum. – Kelsey

14

Kullanım DATEADD()

DATEADD(hh, 1, order_date) 

DÜZENLEME: Zaman bir saat geriye ayarlanırken

, bir yanlış sistem saatini olabilir. Bu yüzden, sunucu yöneticisinin bunu düzeltmesini istemeniz daha iyi olur.

+0

Bunu bir sorguda nasıl kullanırım? (DATEADD (hh, 1, order_date)) – Kelsey

+0

INSERT INTOER INTOERING VALUES (DATEADD (ss, 1, order_date)). Geri kalan sütunları sağlıyorsunuz. – Nath

+0

Şu anda kullanmakta olduğum şey şu: ve yeni satırlar ekliyor görünmüyor: '$ sql5 = 'INSERT INTO INTOPMENT_DAYS (account_id, order_date) VALUES ('". $ Acc_id. '', 'DATEADD (hh , 1, order_date) ') "' – Kelsey

İlgili konular