- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我执行此查询时:
SELECT CURRENT_TIMESTAMP(),CURRENT_DATE()+0,CURRENT_DATE;
我得到这个结果:
CURRENT_TIMESTAMP(), CURRENT_DATE()+0, CURRENT_DATE
2019-03-25 08:54:33, 20190325 , 2019-03-24
为什么 CURRENT_DATE 和 CURRENT_DATE + 0 之间存在差异?
我的服务器版本是:15.1 Distrib 10.1.37-MariaDB,适用于 debian-linux-gnu (x86_64),使用 readline 5.2
感谢您的建议:)
最佳答案
我同意结果可能有些令人惊讶。您向某个日期添加零并期望它保持在该日期。然而,这意味着您添加零个“东西”,例如零小时或零天(否则:+1 是否意味着日期?)。
有一些 DBMS 可以做到这一点。例如,在 Oracle 中,somedate + 1
表示 somedate + 间隔“1”天
。然而 MySQL 却没有。 MySQL 而是将数字(在您的情况下为零)添加到日期的内部数字表示中。他们为什么要这样做,我无法理解。为什么我们想看看 MySQL 内部使用什么来存储日期?这对我们来说应该不重要。因此,MySQL 所做的是将 CURRENT_DATE
转换为数值,然后添加零,这就是您在结果中看到数字的原因。
您可以从中学到什么:不要在日期中添加数字,因为它实际上没有任何意义。 2008 年 10 月 3 日加 23 是什么(与“加 23 天”或“加 23 周”或其他什么相反)?它只是没有任何意义。因此,请将其视为 DBMS 中的缺陷,甚至允许这样做,但永远不要使用它。
您当然可以随时为日期添加间隔,例如
select current_date + interval 0 day;
关于mysql - CURRENT_TIMESTAMP()、CURRENT_DATE() + 0 和 CURRENT_DATE() 之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55333651/
当我执行此查询时: SELECT CURRENT_TIMESTAMP(),CURRENT_DATE()+0,CURRENT_DATE; 我得到这个结果: CURRENT_TIMESTAMP(), CU
从 mysql8 开始,这是合法的: CREATE TABLE t (d DATETIME DEFAULT CURRENT_TIMESTAMP); 这是合法的: CREATE TABLE t (d D
从 mysql8 开始,这是合法的: CREATE TABLE t (d DATETIME DEFAULT CURRENT_TIMESTAMP); 这是合法的: CREATE TABLE t (d D
当我将日期插入到我的表字段时,我目前正在使用 CURRENT_DATE。仅提取月份和年份两位数的月份和四位数的年份(例如 $mon = 01 和 $year 2010) 最佳答案 参见 date-an
我需要计算今天可用记录的几何平均值。当我不包括 CURRENT_DATE() 时,下面的查询工作正常,但这对于只获取今天的记录是必不可少的。 SELECT id,EXP( SUM( LOG( atmo
我有到期日 我想检查到期日是否早于当前日期。如果到期日是 ex:27-03-2011。如果到期时间是 ex:27-04-2011,我想做一些操作,不需要做任何事情。 我只想查看和报告一个月的详细信息,
是否可以将相对/静态日期和时间放入 SQL 中? 我想得到昨天和后天的结果。 所以假设日期介于 (current_date-2 06:00:00) 和 (current_date-1 06:00:00
是否可以将相对/静态日期和时间放入 SQL 中? 我想得到昨天和后天的结果。 所以假设日期介于 (current_date-2 06:00:00) 和 (current_date-1 06:00:00
为什么我不能这样写? set @date = SELECT CURRENT_DATE; 如何将 CURRENT_DATE 的返回值存储在用户变量中? 最佳答案 试试这个方法: set @MYVAR =
我在 postgres 中插入触发器之前 CREATE OR REPLACE FUNCTION add_requestdate() RETURNS TRIGGER AS $$ DECLARE BEGI
我在 postgreSQL 8.2 的 fork MPP 版本上尝试一个非常简单的测试查询,我想弄清楚这是否是预期的行为。 当我使用 current_date 为单行执行插入语句时,我得到了当前日期的
我的杂务表中有一个时间列 [start_at]。我想用家务表中的 current_date + time 列填充 daily_chores 表。 示例:我的杂务编号为 17,应在 18:00:00 开
select CURRENT_DATE()+1 于 10 月 31 日在 MySQL 中返回 20101032。我怎样才能解决这个问题?预计日期是 20101101。谢谢。 最佳答案 改为使用 DAT
我正在尝试创建包含类似列的表 model_year smallint(4) not null default YEAR(CURRENT_DATE) 但是有一个错误(无效的默认值)。我可以做些什么来设置
三个关键细节。 我是直接通过 phpMyAdmin 中的 SQL 查询功能进行的 正在运行的查询如下: SELECT * FROM `leaderboard` WHERE date > (CURREN
我正在写一份报告,显示自去年以来每个月的代码总量。 目前,如果我只对过去一年的所有代码进行计数,那么我的结果集将如下所示 name | code | total | date build
与其他时间函数不同,它会在 24 小时内返回相同的答案,因此它阻止查询缓存似乎很奇怪。这是错误还是预期的行为? 我想在日期分区表(昨天到 8 天前)上保存一个具有固定滚动日期窗口的 View ,但如果
sysdate 和 current_date 的 oracle 文档声称它们都返回 DATE: sysdate current_date 不过这个测试: alter session set plsql
我正在使用 jpa 3.o 和 Hibernate。我有一个命名查询: SELECT COUNT(wt.id) FROM WPSTransaction wt WHERE wt.createdDate>
我正在编写一个触发器来将元组插入到关系表中。在此过程中,我尝试使用 native CURRENT_DATE() 函数将当前日期插入到一列中。我已尝试多次调用 CURRENT_DATE(),但将日期输入
我是一名优秀的程序员,十分优秀!