SELECT postdate,UNIX_TIMESTAMP(postdate) AS timestamp
FROM yourtableUPDATE yourtable 
SET postdate = UNIX_TIMESTAMP(postdate)

解决方案 »

  1.   

    manualhttp://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
      

  2.   

    谢谢楼上诸位的指点,用UNIX_TIMESTAMP的确可以,但我如果想用mktime()函数呢?可以吗,mktime(字段名)这样的格式不正确啊,而UNIX_TIMESTAMP(字段名)就可以,这是批量修改,又无法指定某一具体的日期值,如果用mktime()那该如何写才对啊?还望大家再给指点一下,谢谢。
      

  3.   

    你先要弄清楚你要在哪里完成工作
    UNIX_TIMESTAMP 是mysql的函数,工作在mysql中
    mktime是php函数,工作在php程序中
    不要混淆了!!!其实你直接将字段设为datetime类型就没有问题了
      

  4.   

    你的需求不是“而我是批量修改字段值”么,直接在数据库里执行我给你的sql语句就能批量修改了啊(难道你字段里面的格式不一样么),
    干嘛非用php函数呢,开销还大。用mktime()肯定不能直接实现你的需求,还要正则截取字符之类的。http://cn.php.net/mktimehttp://cn.php.net/strtotime看手册就知道怎么用了。===============================我要喷血了 囧o...
      

  5.   

    不放心就先改成 varchar(100) 或者 DATETIME
    导入
    之后执行sql语句
    然后再改回int-----------------------------续喷ing…………唠叨老大都发话了…………
      

  6.   

    呵呵,谢过诸位的指点了,我的目的是学习mktime()函数的用法,很抱歉,我真的把UNIX_TIMESTAMP和mktime两种函数搞混子,但看了手册半天,手册中都是以指定某一具体日期值为参数的,而我这种情况只能以某一字段名为参数,手册看来看去的,还是找不出解决办法啊。我说过了,用UNIX_TIMESTAMP(字段名)其实解决了我的问题,但我这里是学习mktime()函数的用法,还望大家能不吝指点一二好吗?我想在php程序中修改,多学一招嘛!
      

  7.   

    还有一点不太明白,为何要把存储时间值的字段属性设为int类型呢?正如楼上所说,设为datetime类型不就可以了吗(还没有UTC时间的限制性),但我想程序作者这样设置有其优点的,所以再向大家求教这里设为int类型有何好处?
      

  8.   

    1、把日期时间字段设计成数值型的唯一好处是约束程序中不使用数据库提供的日期时间函数,这一点在各种数据库间移植是很重要的。每钟数据库提供的日期时间函数都是不一样的2、为熟悉mktime的使用,可以
    $s = '2006-12-23 10:28:35';
    $t = preg_replace('/(\d+).(\d+).(\d+).(\d+).(\d+).(\d+)/e', 'mktime($4,$5,$6,$2,$3,$1)', $s);
    echo date('Y-m-d H:i:s', $t); //这样由回来了
      

  9.   

    多谢xuzuning的热心指点了,恕我愚笨,您的参数是这样的:
    $s = '2006-12-23 10:28:35';还是某一具体的日期啊,而我是想修改某一指定字段中的所有值,就卡在这儿,如何获取字段中的值啊,又不能用字段名,烦请再予指点一二好吗?谢谢了。