mongo-日期類型(1)


mongo-日期類型(2)

mongo中的日期類型,使用ISO格式,例如:ISODate("2012-11-02T07:58:51.718Z")。下面來測試一下: 

 C:\>mongo 127.0.0.1:2222/test

MongoDB shell version: 1.8.3
connecting to: 127.0.0.1:2222/test
type "help" for help

 

neu:PRIMARY> db.t2.insert({mydate:ISODate("2012-11-02T07:58:51.718Z")})

neu:PRIMARY> db.t2.find()
{ "_id" : ObjectId("50937ded0847cf5f01606dae"), "mydate" : ISODate("2012-11-02T07:58:51.718Z") }

日期字符串也支持多種格式

neu:PRIMARY> db.t2.insert({mydate:ISODate("2012-11-02 07:58:51")})

neu:PRIMARY> db.t2.insert({mydate:ISODate("20121102 07:58:51")})

neu:PRIMARY> db.t2.insert({mydate:ISODate("20121102")}) 

neu:PRIMARY> db.t2.find()
{ "_id" : ObjectId("50937ded0847cf5f01606dae"), "mydate" : ISODate("2012-11-02T07:58:51.718Z") }
{ "_id" : ObjectId("509380d22bb20f9946fb9004"), "mydate" : ISODate("2012-11-02T07:58:51Z") }
{ "_id" : ObjectId("509381052bb20f9946fb9005"), "mydate" : ISODate("2012-11-02T07:58:51Z") }
{ "_id" : ObjectId("509381102bb20f9946fb9006"), "mydate" : ISODate("2012-11-02T00:00:00Z") }

 

我們比較一下mongo中的當前時間與系統當前時間:

 
neu:PRIMARY> new Date()
ISODate("2012-11-02T 08:13:10.250Z")
neu:PRIMARY> ^Z
bye
 
C:\>date
當前日期: 2012-11-02 星期五
輸入新日期: (年月日)
 
C:\>time
當前時間: 16:13:14.95
輸入新時間:

 

我們看到,mongo中的時間似乎與系統時間相差了8個小時,why?

這是因為mongo中的date類型以UTC(Coordinated Universal Time)存儲,就等於GMT(格林尼治標准時)時間。而系統時間使用的是GMT+0800時間,兩者正好相差8個小時。

 

在mongodb與oracle或sqlserver相互同步數據時,需要注意這一點!

 

如果用python直接讀取mongo中的日期,就會發生錯誤:

>>> import pymongo
>>> conn=pymongo.Connection('127.0.0.1',2222)
>>> db=conn.test
>>> for row in db.t2.find():
...     print row['mydate']
...
2012-11-02 07:58:51.718000
2012-11-02 07:58:51
2012-11-02 07:58:51
2012-11-02 00:00:00

2012-11-02 00:00:00 

 

在python中,與之對應的日期是 datetime.datetime.utcnow(),而不是now(),兩者正好差8個小時:

>>> import datetime 

 >>> datetime.datetime.utcnow()

datetime.datetime(2012, 11, 2,  8, 22, 52, 953000)
>>> datetime.datetime.now()

datetime.datetime(2012, 11, 2, 16, 22, 58, 218000) 

 

關於二者的轉換,可以參考這個鏈接:http://www.linuxso.com/linuxbiancheng/12653.html
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM