データストアへ日時を保存した時に気付いた事メモ

「Sksk(さくさく)」というクラスが日時型のフィールドを持っており「2009/10/26 00:00:00」から「2009/10/26 00:03:00」まで1秒毎の日時が格納されているとする。(データ数は181)

from google.appengine.ext import db
import datetime

class Sksk(db.Model):
    dt = db.DateTimeProperty()

    # テスト用データ入れ
    def setTestDateData(self, limit):
        i = 0
        j = 0
        for num in range(1, int(limit)):
            self.dt = datetime.datetime(2009, 10, 26, 0,j,i)
            if i == 59 :
                i = 0
                if j == 59 :
                    j = 0
                else :
                    j += 1
            else :
                i += 1
            self.put()
        return None

sk = Sksk()
sk.setTestDateData(181)

気になったところは0秒の日時データ。型はdatetime型だし、出力すると欲しい形になっているし、、、でも0秒というフィールドが見当たらないように見える。うーんなんだこれ。

for val in Sksk.all() :
    print val
    print val.dt
    print type(val.dt)

# Sksk(key_id=1123L, a=None, dt=datetime.datetime(2009, 10, 26, 0, 0), dt_flag=True)
# 2009-10-26 00:00:00
# <type 'datetime.datetime'>
# 〜略〜
# Sksk(key_id=1183L, a=None, dt=datetime.datetime(2009, 10, 26, 0, 1), dt_flag=True)
# 2009-10-26 00:01:00
# <type 'datetime.datetime'>
# 〜略〜
# Sksk(key_id=1243L, a=None, dt=datetime.datetime(2009, 10, 26, 0, 2), dt_flag=True)
# 2009-10-26 00:02:00
# <type 'datetime.datetime'>
# 〜略〜
# Sksk(key_id=1303L, a=None, dt=datetime.datetime(2009, 10, 26, 0, 3), dt_flag=True)
# 2009-10-26 00:03:00
# <type 'datetime.datetime'>

データストア側では不要なデータとして保持していないのかしら。保持しない→ゼロと同等って扱いにしてるのかな。何が帰ってくるかは分かったけどピンと来ない…