我试过能直接插入一个整型值到mysql的datetime列中,例如插入122000001得到的值是“2000-01-22 00:00:01”,但直接插入time_t不对,显然mysql不是用time_t存储的。
mysql里面究竟是怎样存储datetime的?我需要插入数据库的是一个time_t类型的值,而从数据库中读出来后处理时也需要time_t值,但我又不想直接存一个long类型的列,因为当我统计的时候需要它是datetime类型。我现在的做法是插入时,把time_t转成tm,再转成形如'2008-10-10 01:00:00'的字符串,然后插入;读取时,在sql语句中用Year(col),month(col)...分别得到年,月。。等的值,然后做成tm,再转成long使用。感觉太繁琐,效率底下,且愚昧。应该有更高效的做法吧?

解决方案 »

  1.   

    我需要插入数据库的是一个time_t类型的值,而从数据库中读出来后处理时也需要time_t值,但我又不想直接存一个long类型的列,因为当我统计的时候需要它是datetime类型。 为什么不直接用DATETIME插入内容?
      

  2.   


    因为我从网络上得到的是一个time_t类型的时间值,而处理之后也需要以timt_t类型发送该值(毕竟time_t只有4个字节,如果格式化成字符串就长多了。不过自己已经解决了,用from_unixtime和unix_timestamp两个函数就OK了。