精华内容
下载资源
问答
  • Timestamp 类型转换为 Calendar 类型: // 获取 Timestamp 类型时间 Timestamp timestamp = new Timestamp(System.currentTimeMillis()); // 转换为 Calendar 类型,SUN 也推荐用 Calendar 处理时间信息 Calendar ...

    Java Calendar 日历类的时间操作,这也许是 Java 环境下创建和管理日历及操作时间最简单的一个方案了,示范代码也很简单。

    演示了获取时间,日期时间的累加和累减,以及日期时间的比较。

    原文地址:blog.csdn.net/joyous/article/details/9630893

    注意事项:

    Calendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。

    而 Calendar.DAY_OF_WEEK 定义值如下,每周从 SUNDAY 开始,从 1 ~ 7:

    Calendar.SUNDAY = 1
    Calendar.MONDAY = 2
    Calendar.TUESDAY = 3
    Calendar.WEDNESDAY = 4
    Calendar.THURSDAY = 5
    Calendar.FRIDAY = 6
    Calendar.SATURDAY = 7

    SimpleDateFormat 的格式定义

     

    LetterDate or Time ComponentPresentationExamples
    GEra designatorTextAD
    yYearYear199696
    YWeek yearYear200909
    MMonth in year (context sensitive)MonthJulyJul07
    LMonth in year (standalone form)MonthJulyJul07
    wWeek in yearNumber27
    WWeek in monthNumber2
    DDay in yearNumber189
    dDay in monthNumber10
    FDay of week in monthNumber2
    EDay name in weekTextTuesdayTue
    uDay number of week (1 = Monday, ..., 7 = Sunday)Number1
    aAm/pm markerTextPM
    HHour in day (0-23)Number0
    kHour in day (1-24)Number24
    KHour in am/pm (0-11)Number0
    hHour in am/pm (1-12)Number12
    mMinute in hourNumber30
    sSecond in minuteNumber55
    SMillisecondNumber978
    zTime zoneGeneral time zonePacific Standard TimePSTGMT-08:00
    ZTime zoneRFC 822 time zone-0800
    XTime zoneISO 8601 time zone-08-0800-08:00

     

    Java Calendar 演示代码如下:

     

    package demo;
    
    import java.util.Date;
    import java.text.SimpleDateFormat;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.util.Calendar;
    
    public class Test
    {
      public Test()
      {
      }
    
      public static void main(String[] args)
      {
        // 字符串转换日期格式
        // DateFormat fmtDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 接收传入参数
        // String strDate = args[1];
        // 得到日期格式对象
        // Date date = fmtDateTime.parse(strDate);
    
        // 完整显示今天日期时间
        String str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(new Date());
        System.out.println(str);
    
        // 创建 Calendar 对象
        Calendar calendar = Calendar.getInstance();
    
        try
        {
          // 对 calendar 设置时间的方法
          // 设置传入的时间格式
          SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-d H:m:s");
          // 指定一个日期
          Date date = dateFormat.parse("2013-6-1 13:24:16");
          // 对 calendar 设置为 date 所定的日期
          calendar.setTime(date);
    
          // 按特定格式显示刚设置的时间
          str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
          System.out.println(str);
        }
        catch (ParseException e)
        {
          e.printStackTrace();
        }
    
        // 或者另一種設置 calendar 方式
        // 分別爲 year, month, date, hourOfDay, minute, second
        calendar = Calendar.getInstance();
        calendar.set(2013, 1, 2, 17, 35, 44);
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
        System.out.println(str);
    
        // Calendar 取得当前时间的方法
        // 初始化 (重置) Calendar 对象
        calendar = Calendar.getInstance();
        // 或者用 Date 来初始化 Calendar 对象
        calendar.setTime(new Date());
    
        // setTime 类似上面一行
        // Date date = new Date();
        // calendar.setTime(date);
    
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
        System.out.println(str);
    
        // 显示年份
        int year = calendar.get(Calendar.YEAR);
        System.out.println("year is = " + String.valueOf(year));
    
        // 显示月份 (从0开始, 实际显示要加一)
        int month = calendar.get(Calendar.MONTH);
        System.out.println("nth is = " + (month + 1));
    
        // 本周几
        int week = calendar.get(Calendar.DAY_OF_WEEK);
        System.out.println("week is = " + week);
    
        // 今年的第 N 天
        int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);
        System.out.println("DAY_OF_YEAR is = " + DAY_OF_YEAR);
    
        // 本月第 N 天
        int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH));
    
        // 3小时以后
        calendar.add(Calendar.HOUR_OF_DAY, 3);
        int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY);
        System.out.println("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);
    
        // 当前分钟数
        int MINUTE = calendar.get(Calendar.MINUTE);
        System.out.println("MINUTE = " + MINUTE);
    
        // 15 分钟以后
        calendar.add(Calendar.MINUTE, 15);
        MINUTE = calendar.get(Calendar.MINUTE);
        System.out.println("MINUTE + 15 = " + MINUTE);
    
        // 30分钟前
        calendar.add(Calendar.MINUTE, -30);
        MINUTE = calendar.get(Calendar.MINUTE);
        System.out.println("MINUTE - 30 = " + MINUTE);
    
        // 7天前
        calendar.add(Calendar.DAY_OF_YEAR, -7);
        // 显示当月 x 号
        int day_of_month = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("day_of_month -7 = " + day_of_month);
    
        // 格式化显示
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
        System.out.println(str);
    
        // 重置 Calendar 显示当前时间
        calendar.setTime(new Date());
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
        System.out.println(str);
    
        // 创建一个 Calendar 用于比较时间
        Calendar calendarNew = Calendar.getInstance();
    
        // 设定为 5 小时以前,后者大,显示 -1
        calendarNew.add(Calendar.HOUR, -5);
        System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    
        // 设定7小时以后,前者大,显示 1
        calendarNew.add(Calendar.HOUR, +7);
        System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    
        // 退回 2 小时,时间相同,显示 0
        calendarNew.add(Calendar.HOUR, -2);
        System.out.println("时间比较:" + calendarNew.compareTo(calendar));
      }
    }

    运行结果

    2013-06-07 23:27:34:195
    2013-06-01 13:24:16:000
    2013-02-02 17:35:44:197
    2013-06-07 23:27:34:197
    year is = 2013
    nth is = 6
    week is = 6
    DAY_OF_YEAR is = 158
    DAY_OF_MONTH = 7
    HOUR_OF_DAY + 3 = 2
    MINUTE = 27
    MINUTE + 15 = 42
    MINUTE - 30 = 12
    2013-06-08 02:12:34:197
    2013-06-07 23:27:34:199
    时间比较:-1
    时间比较:1
    时间比较:0

    要计算时间差,可用 Calendar.getTimeInMillis() 取得两个时间的毫秒级的时间差,再加以换算即可,比如获得相差天数,代码如下:

        // 得微秒级时间差
        long val = calendarEnd.getTimeInMillis() - calendarBegin.getTimeInMillis();
        // 换算后得到天数
        long day = val / (1000 * 60 * 60 * 24);
    

    其他与 date 相关的类型转换代码如下。

    Timestamp 类型转换为 Date 类型:

    Timestamp stamp = new Timestamp(System.currentTimeMillis());
    Date date = new Date(stamp.getTime());
    System.out.println(date);

    Timestamp 类型转换为 Calendar 类型:

    // 获取 Timestamp 类型时间
    Timestamp timestamp = new Timestamp(System.currentTimeMillis());
    
    // 转换为 Calendar 类型,SUN 也推荐用 Calendar 处理时间信息
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(timestamp.getTime());

    Date 类型转换为 Calendar 类型:

    // Date 向 Calendar 赋值
    calendar.setTime(date);

    Calendar 类型转换为 Timestamp 类型:

    // 创建 Calendar 对象,也同时获取了当前时间
    Calendar calendar = Calendar.getInstance();
    
    // 转换为 Timestamp 类型对象
    Timestamp timestamp = new Timestamp(calendar.getTimeInMillis());
    System.out.println(timestamp);

    Calendar 类型转换为 Date 类型:

    // Calendar 对象类型转换为 Date 对象类型
    Calendar calendar = Calendar.getInstance();
    java.util.Date date = calendar.getTime();
    System.out.println(date);

    StringDate 转换为 Date 或者 Timestamp

    /* 将字符串日期或者日期时间转换为 timestamp 格式 */
    try
      {
        // 一个字符串日期
        String strDate = "2020-01-31";
    
        // 设置传入格式
        // yyyy-MM-dd 或者完整的 yyyy-MM-dd HH:mm:ss
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = dateFormat.parse(strDate);
    
        // 创建 Calendar 用于处理 date 对象
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
    
        // 由 calendar 对象生成 timestamp
        Timestamp timestamp = new Timestamp(calendar.getTimeInMillis());
        System.out.printf(timestamp);
      }
      catch (Exception e)
      {
        e.printStackTrace();
      }

    原文地址:blog.csdn.net/joyous/article/details/9630893

    https://blog.inull.net
    Q群讨论 236201801

    展开全文
  • 主要介绍了MySQL错误TIMESTAMP column with CURRENT_TIMESTAMP的解决方法,需要的朋友可以参考下
  • 时间戳timestamp

    千次阅读 2020-10-16 11:03:53
    自动生成的唯一二进制数字的数据类型。 timestamp通常用作给表行加版本戳的机制。 存储大小为 8 个字节。 不可为空的 timestamp 列在语义上等价于 binary(8) ...每次插入或更新包含 timestamp 列的行时,timestamp .
    1. 自动生成的唯一二进制数字的数据类型。
    2. timestamp 通常用作给表行加版本戳的机制。
    3. 存储大小为 8 个字节。 不可为空的 timestamp 列在语义上等价于 binary(8) 列。可为空的 timestamp 列在语义上等价于 varbinary(8) 列。
    4. timestamp 数据类型只是递增的数字,不保留日期或时间。 若要记录日期或时间,请使用 datetime 数据类型。
    5. 一个表只能有一个 timestamp 列。每次插入或更新包含 timestamp 列的行时,timestamp 列中的值均会更新。对行的任何更新都会更改 timestamp 值。
    6. 总结:SQL Server timestamp 数据类型与时间和日期无关【但是可以做转换使它和时间有关系用标准时间格式展示数据,使time更容易看:precision rfc3339。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@DBTS 加1。这样做足以帮助恢复过程确定页修改的相对次序,但是 timestamp 值与时间没有任何关系。@@DBTS 返回当前数据库最后使用的时间戳值。插入或更新包含 timestamp 列的行时,将产生一个新的时间戳值。

    时间戳字段在数据库中起什么作用:

    1.给一个表加一个时间戳字段(timestamp),假设某条记录同时被两个人A和B读取并且正在修改。A先修改完成然后保存了,然后B再保存的时候,会由于时间戳不一致(因为A之前先保存修改了时间戳)导致B保存失败。timestamp是数据库记录版本控制的好东西,Linq to sql, entity framework都有很好的支持。

    2.数据库优化:当在处理几十万条并发数据时,我们就可以在使用最频繁的表中添加一列字段,类型为timestamp,添加完毕后系统会自动生成相应的唯一值,如果数据记录有任何改动,timestamp值也会做相应的调整。

     

    展开全文
  • 主要介绍了MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数,需要的朋友可以参考下
  • timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下: 1.CURRENT_TIMESTAMP 当要向数据库执行insert操作时,如果有个timestamp字段属性设为 CURRENT_TIMESTAMP...

    timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下:

    1.CURRENT_TIMESTAMP 

    当要向数据库执行insert操作时,如果有个timestamp字段属性设为

    CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间

    2.ON UPDATE CURRENT_TIMESTAMP

    当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,它的值也会跟着更新为当前UPDATE操作时的时间。

    转载于:

    http://blog.163.com/login.do?err=403

     

    展开全文
  • timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下: 1. CURRENT_TIMESTAMP 当要向数据库执行insert操作时,如果有个timestamp字段属性设为 ...

    timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下:

     

     

     

    1.

       

    CURRENT_TIMESTAMP 

     

    当要向数据库执行insert操作时,如果有个timestamp字段属性设为

     

    CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间

       

     

     

     

    2.

       

    ON UPDATE CURRENT_TIMESTAMP

    当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,它的值也会跟着更新为当前UPDATE操作时的时间。

     

     

     

     

    总结:

     

    ■NOT NULL DEFAULT CURRENT_TIMESTAMP

    ■NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

     

    其中,

    ■CURRENT_TIMESTAMP - 当更新此条记录时,时间戳不会改变

    ■CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP - 当更新此条记录时,时间戳将会改变,变为最新时间
    设置CURRENT_TIMESTAMP默认值后,插入记录还是更新记录都不需要维护该字段,该字段完全由MySQL维护,就像AutoIncrement字段一样,但如果使用上文设置的datetime字段,则需要手动构造时间更新,比如类似now()等。

    对CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,有个特殊情况,假如你更新的字段值(UPDATE)没有变化时,MySQL将会忽略更新操作,所以,时间戳也不会改变。另外,如果有多个CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP列,那么MySQL只会更新第一个。

     

    以上内容:原文

     

     

    更详细可以参考:

     

    MySQL的timestamp类型自动更新问题

      

    展开全文
  • 项目出现如下错误: Error updating database. Cause:... 数据模型如下: /* 创建时间不可为空*/ createTime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' , /
  • SQLYOG中timestamp设置为CURRENT_TIMESTAMP

    千次阅读 2020-04-13 16:59:29
    使用SQLYog创建表时,要记录当前生成时间,一般用timestamp,正常情况下是默认值是CURRENT_TIMESTAMP,但是用工具时生成结果是CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。 对应的建表SQL: CREATE ...
  • SQL语句中TIMESTAMP类型提供一种类型,你可以使用它自动地用当前的日期和时间标记INSERT或UPDATE的操作,它有两个属性,一个是 1.CURRENT_TIMESTAMP 当要向数据库执行insert操作时,如果有个timestamp字段属性设为...
  • update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, MySQL数据库表中, 字段类型为timestamp时。如果默认值为CURRENT_TIMESTAMP,勾选了根据当前时间戳更新。在insert into一条...
  • 时间戳timestamp类型

    万次阅读 2019-01-10 19:43:14
    时间戳timestamp类型 Timestamp ​ Mysql中timestamp的格式为"YYYY-MM-DD:HH-MM-SS",显示宽度是19个字符,如果你在insert的时候指定(null),那么它会自动显示为当前操作的时间。但是如果你在insert操作...
  • timestamp属性的字段带有ON UPDATE CURRENT_TIMESTAMP时,别的任何字段变更都会导致该字段更新,这种属性可以作为数据更新的凭证,但是一般的业务数据不会有这种需求,所以要慎用ON UPDATE CURRENT_TIMESTAMP属性 ...
  • timestamp设置默认值是Default CURRENT_TIMESTAMP;timestamp设置随着表变化而自动更新是ON UPDATE CURRENT_TIMESTAMP;接下来为您详细介绍
  • CREATE TABLE TIMESTAMP_TEST( TIME DATE, TIMESTP TIMESTAMP, TIMESTP_TZ TIMESTAMP WITH TIME ZONE, --当前会话 TIMESTP_LTZ TIMESTAMP WITH LOCAL TIME ZONE) --数据库 2、添加数据 INSERT INTO TIMESTAMP_...
  • TIMESTAMP数据类型

    万次阅读 2019-01-04 15:52:21
    MySQL目前暂不支持列的default函数,如果你想把某列的默认值设置为当前日期/时间的话,可以使用TIMESTAMP数据类型,下面详说TIMESTAMP数据类型的变体: ①timestamp default current_timestamp on update current_...
  • 由于网上关于Timestamp类的资料比较少,而且官网上面介绍的很模糊,本文只是对如何创建Timestamp类对象进行简要介绍,详情请读者自行查阅文档。 以下有两种方式可以创建一个Timestamp对象: 1. Timestamp()的构造...
  • Record has Long.MIN_VALUE timestamp (= no timestamp marker). Is the time characteristic set to 'ProcessingTime', or did you forget to call 'DataStream.assignTimestampsAndWatermarks(...)'? 可能的原因...
  • `create_time` timestamp not null default current_timestamp comment '创建时间', `update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改时间', 当执行...
  • import java.sql.Timestamp; Timestamp timestamp= new Timestamp(System.currentTimeMillis()); long time = timestamp.getTime(); long nexttime=time+86400000; Timestamp timestamp1 = new Timestamp(nexttime);...
  • SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。
  • oracle timestamp详解

    2013-06-03 14:32:32
    oracle timestamp详解 将常用的转换方法及使用注意事项都罗列出来了
  • mysql建表TIMESTAMP的CURRENT_TIMESTAMP用法

    千次阅读 2019-08-23 18:15:30
    CREATE TABLE data( id VARCHAR(64) UNIQUE, sbj VARCHAR(256), prd VARCHAR(256), obj VARCHAR(256), ... create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAM...
  • mysql中的CURRENT TIMESTAMP和ON UPDATE CURRENT TIMESTAMP
  • postgresql timestamp相减

    千次阅读 2019-11-25 13:36:28
    如果是按相差24小时就算1天的话,直接用两个timestamp值相减得到一个interval值,然后获得此interval值的天数部分即可,如下: 1 selectdate_part('day','2015-01-1517:05'::timestamp-'2013-01-1416...
  • 查询数据时报错,SqlServer数据库中字段类型为timestamp , java中的映射类型为Date 所报错误: 06-03 19:54:50.767 ERROR [SqlExceptionHelper.java:144] 不支持从 timestampTIMESTAMP 的转换。 应该如何解决...
  • 在MySQL 5.6.6之前,TIMESTAMP的默认行为: TIMESTAMP列如果没有明确声明NULL属性,默认为NOT NULL。(而其他数据类型,如果没有显示声明为NOT NULL,则允许NULL值。)设置TIMESTAMP的列值为NULL,会自动存储为当前...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 475,387
精华内容 190,154
关键字:

timestamp