zoukankan      html  css  js  c++  java
  • MySQL中默认值中用时间函数的问题

    今天在上课的时候在测试MSSQL建表的时候 注册时间默认值用getdate()可以获取插入值时候的时间create table temp( id int PRIMARY key, in_time datetime NOT NULL default getdate() )

    但是在MYSQL建表练习的时候不能用now()进行对应的做法:

    create table temp(    id int PRIMARY key,    in_time datetime NOT NULL default now() )

    却不行,最后发现MYSQL中有个数据类型:时间戳timestamp,这个类型如其意思就像邮戳一样在更改信内容时时邮戳上的时间不会改变,这种类型用来定义注册时间再好不过了。

    做了具体的改动:

    create table temp(    id int PRIMARY key,    in_time timestamp NOT NULL default now() )

    不过建议用这种做法:

    create table temp(    id int PRIMARY key,    in_time timestamp NOT NULL default CURRENT_TIMESTAMP )

    如果想在更新表内内容时候默认的时间戳也会便会则在穿件时间字段时候后面加on update CURRENT_TIMESTAMP 即可:

    create table temp(    id int PRIMARY key,    in_time timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP )

    如果时间戳用在一个固定不变的时间上,比如用户的注册时间上那再好不过了,不过这种在数据库中对时间能否因为需求的变更而变更显得相当麻烦,因为在不稳定的需求过程中你修改数据库表结构的代价毕竟比在程序里加一句update in_time(就是更新时间,具体问题具体写法)更大。

    程序设计,按严格的执行顺序和需求来。

  • 相关阅读:
    管道通讯
    C++类型转换
    自定义数组容器MyArray框架
    vue 转场动画
    身份证信息 获取年龄性别生日
    element ui +vue 输入 身份证号获取 性别 年龄 籍贯
    获取地理位置
    post 下载二进制pdf文件
    post 文件下载二进制流
    遍历对象的几中方法
  • 原文地址:https://www.cnblogs.com/fedro/p/4351824.html
Copyright © 2011-2022 走看看