呵呵,NOW() 
SYSDATE() 
CURRENT_TIMESTAMP 
以 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS 格式返回当前的日期时间值,返回的格式取决于该函数是用于字符串还是数字语境中: 
mysql> SELECT NOW();
        -> '1997-12-15 23:50:26'
mysql> SELECT NOW() + 0;
        -> 19971215235026注意,函数 NOW() 在每个查询中只计算一次,也就是在查询开始执行时。这就是说,如果在一个单独的查询中多次引用了 NOW(),它只会给出值都是一个相同的时间。 为什么不查看一下 MySQL 参考手册呢!

解决方案 »

  1.   

    不好意思。再请教一下!
    create table temp(
    pubtime datetime default now() );
    这样为什么老是提示出错呢?
      

  2.   

    DEFAULT 值必须是一个常量,不可以是一个函数或一个表达式。 如果一个列没有指定 DEFAULT 值,MySQL 将自动地赋于一个,规则如下: 如果列可以接受 NULL 作为一个值,缺省值为 NULL。 如果列被定义为 NOT NULL,缺省值取决于列的类型: 
    对于没有声明 AUTO_INCREMENT 属性的数字类型,缺省值为 0。对于一个 AUTO_INCREMENT 列,缺省值为序列中的下一个值。 对于非 TIMESTAMP 的日期和时间类型,缺省值是该类型适当的零值。对于表中的第一个 TIMESTAMP 列,缺省值为当前的日期和时间。查看章节 6.2.2 Date 和 Time 类型。 对于非 ENUM 的字符串类型,缺省值是空字符串。对于 ENUM,缺省值为第一个枚举值。 缺省值必须是常量。这意味着,例如,对于一个日期列,你不能将一个像 NOW() 或 CURRENT_DATE 的函数设置为缺省值。 
    你可以下载 我翻译的 MySQL 语言参考手册
    里面讲得很详细
      

  3.   

    非常谢谢犬犬的解释
    但我现在表里面的某一属性的取值默认的就要是系统时间呀
    不能用DEFAULT处理,我该怎么处理这一属性呢?
      

  4.   

    TIMESTAMP列类型详解(怎样设列的默认值为Now()) 
    http://www.csdn.net/develop/read_article.asp?id=15687
      

  5.   

    时间日期类型处理上有一点要特别注意,那就是不能有空值。如果非要来个空值的话请使用类似的字段 “0000-00-00 00:00:00”表示,直接作为默认字段即可。这一点对于整个系统可能通过ODBC访问时尤其重要!