sql 中 timestamp 类型的时间 作为条件 如何进行查询

如time>=aandtime<=b... 如 time>=a and time<=b 展开
 我来答
爱可生云数据库
2021-03-15 · MySQL开源数据库领先者
爱可生云数据库
爱可生,金融级开源数据库和数据云服务整体解决方案提供商;优秀的开源数据库技术,企业级数据处理技术整体解决方案提供商;私有云数据库云服务市场整体解决方案提供商。
向TA提问
展开全部

timestamp:占用 4 字节,内部实现是新纪元时间(1970-01-01 00:00:00)以来的秒,那么这种格式在展示给用户的时候就需要做必要的时区转换才能得到正确数据。

在进行新纪元时间(1970-01-01 00:00:00)以来的秒到实际时间之间转换的时候 MySQL 根据参数 time_zone 的设置有两种选择:

  • time_zone 设置为 SYSTEM 的话:使用 sys_time_zone 获取的 OS 会话时区,同时使用 OS API 进行转换。对应转换函数 Time_zone_system::gmt_sec_to_TIME

  • time_zone 设置为实际的时区的话:比如 ‘+08:00’,那么使用使用 MySQL 自己的方法进行转换。对应转换函数 Time_zone_offset::gmt_sec_to_TIME

  • 实际上 Time_zone_system 和 Time_zone_offset 均继承于 Time_zone 类,并且实现了 Time_zone 类的虚函数进行了重写,因此上层调用都是 Time_zone::gmt_sec_to_TIME。

    注意这种转换操作是每行符合条件的数据都需要转换的。

帐号已注销
2018-04-11 · TA获得超过4523个赞
知道小有建树答主
回答量:35
采纳率:0%
帮助的人:5431
展开全部

在实现类中查询数据库后,往对象中设置值的时候用getTimestamp如名setPubtime,rs.getTimestamp1。

1、每个数据库都有一个计数器,当对数据库中包含timestamp列的表执行插入或更新操作时,该计数器值就会增加,该计数器是数据库时间戳,这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。

2、一个表只能有一个timestamp列,每次修改或插入包含timestamp列的行时,就会在timestamp列中插入增量数据库时间戳值,使用某一行中的timestamp列可以很容易地确定该行中的任何值自上次读取以后是否发生了更改。

3、如果对行进行了更改,就会更新该时间戳值,如果没有对行进行更改,则该时间戳值将与以前读取该行时的时间戳值一致,你如果是要返回数据库的当前时间戳值,可以使用DBTS返回当前数据库最后使用的时间戳值,插入或更新包含 timestamp列的行时,将产生一个新的时间戳值。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
653319464
2017-12-11
知道答主
回答量:8
采纳率:0%
帮助的人:3万
展开全部
去掉引号 格式错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿冬76
2014-12-07 · TA获得超过5028个赞
知道大有可为答主
回答量:2710
采纳率:88%
帮助的人:1100万
展开全部
就像你写出来的那样就可以啊,时间类型是可以比较大小的。用between and也可以。
更多追问追答
追问
timestamp类型的好像不行啊,我是这样的 select  a from tableA where time>='2004-01-30'
追答
字段名称不要用time,这是关键字。如果一定要用这个作为列名,两边加上方括号
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式