关于timestamp时间范围

https://blog.csdn.net/a1275302036/article/details/80278949

 

1、两者的存储方式不一样
     对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

2、两者所能存储的时间范围不一样
      timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’。

      datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。
---------------------
作者:成長中的小白
来源:CSDN
原文:https://blog.csdn.net/a1275302036/article/details/80278949
版权声明:本文为博主原创文章,转载请附上博文链接!

### 定义和处理 Timestamp 时间戳的时间范围 #### Java 中定义和处理时间戳范围的方法 在Java中,为了定义并处理`timestamp`时间戳的时间范围,可以创建两个`Date`对象来代表起始时间和结束时间。通过给定的函数`timestamp2Date(Long timestamp)`[^1],能够轻松地将时间戳转换成`Date`对象。 ```java private List<Date> getTimestampRange(long startTime, long endTime) { List<Date> dateList = new ArrayList<>(); Date startDate = new Date(startTime); Date endDate = new Date(endTime); dateList.add(startDate); dateList.add(endDate); return dateList; } ``` 此方法接收两个参数——开始时间戳(`startTime`)和结束时间戳(`endTime`),并将它们分别转换为对应的`Date`实例,最后返回包含这两个日期的对象列表。 #### 使用 Go 处理 Unix 时间戳范围 对于Go语言而言,可以通过计算当前时刻之前或之后一段时间内的Unix时间戳来构建所需的时间区间。下面的例子展示了如何获得过去一天到现在的毫秒级时间戳范围: ```go package main import ( "fmt" "time" ) func getTimeStampRange() (int64, int64) { now := time.Now() yesterday := now.Add(-24 * time.Hour) startTs := yesterday.UnixMilli() endTs := now.UnixMilli() return startTs, endTs } func main() { start, end := getTimeStampRange() fmt.Printf("Start Time Stamp: %d\nEnd Time Stamp: %d", start, end) } ``` 这段代码利用了标准库中的time包来进行时间运算,并最终得到指定时间段内的时间戳边界值[^2]。 #### PostgreSQL 中设置自动更新的时间戳字段 当涉及到数据库层面的操作时,特别是像PostgreSQL这样的关系型数据库管理系统,可以在表结构设计阶段就考虑到时间戳字段的行为模式。例如,在记录被插入或者更改的时候让数据库引擎自动填充最新的时间戳,而无需应用程序显式提供这些信息[^4]。 ```sql CREATE TABLE example_table ( id SERIAL PRIMARY KEY, name VARCHAR(50), update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); ``` 上述SQL语句创建了一个名为`example_table`的新表格,其中包含了三个列:id、name以及带有默认值CURRENT_TIMESTAMP属性的update_time。每当有新的行加入或是已有行发生变更时,该字段都会被设为服务器端当时的本地时间。 #### 考虑不同地区的时区差异 值得注意的是,由于不同的地理位置可能处于不同的时区内,因此在跨区域应用开发过程中应当特别注意这一点。通常情况下,建议采用统一的标准如UTC作为内部存储格式;而在展示层面上,则依据用户的偏好调整显示形式[^3][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值