zoukankan      html  css  js  c++  java
  • mysql--数据插入覆盖和时间戳的问题

    1.数据插入问题

    当我们insert数据时,插入datetime类型,此类型的字段,存储数据格式为:  YYYY-MM-DD,它支持的范围为'1000-01-01'到'9999-12-31',并且允许使用字符串或数字为此列复制。

    日期赋值时,允许“不严格”语法:任何标点符都可以用做日期部分或时间部分之间的间割符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'98@12@31 11^30^45'是等价的,对于不合法的将会转换为:0000-00-00 00:00:00

     

    我们传的时候 insert into test(count_data) values (20190922). 不要把20190922转为2019-09-22

     

     

     

    使用ignore关键字,避免重复插入记录可以使用:(主健会变化)

    insert ignore into student_task_trace (student_id) VALUES (20)

     

    使用Replace,如果旧记录与新记录有相同的值,则在新记录被插入之前,旧记录被删除,存入新纪录:

    REPLACE INTO student_task_trace (student_id) VALUES (20)

     

     

    如果有主键的情况下,可以通过惟一索引来防止重复数据的插入

    数据插入一个事件的时候 有好几个不同的值 总会覆盖 ,所以需要给不同值的字段设置个唯一索引。

    除非清空(truncate  表名)

     

     

    2. 时间加减问题

    如果想做时间加减的话 必须把时间变成unix时间戳 如当前时间—创建时间

     

    SELECT user_id, device, UNIX_TIMESTAMP(create_time) create_time from t_user

     

    int(time.time() - create_time).   不转unix无法操作

     

     

     

    3. 时间格式化问题

    如果想让时间正常显示,就需要在写sql的时候给他做格式化

     

    SELECT DATE_FORMAT(grant_end_time, '%%Y-%%m-%%d') grant_end_time from xxxx

     

     

     

     

  • 相关阅读:
    安装的时候,突然安装程序关闭,的灵异问题。
    CSAPP阅读笔记(1)-序
    CSAPP阅读笔记(2)-虚存管理
    nafxcwd.lib(afxmem.obj) :error LNK2005:"void * __cdecl operator new(unsigned int)"
    Linux内核源代码情景分析读书笔记(5)-关于fork/clone/vfork
    [转]调试经验总结VC下的错误对话框
    IP数据包首部的校验和算法
    Matlab画图及生成exe文件
    VC++6.0中的new
    Linux内核模块编译、加载&卸载及查看运行结果
  • 原文地址:https://www.cnblogs.com/yuanfang0903/p/10870627.html
Copyright © 2011-2022 走看看