15赞
451
当前位置:  开发笔记 > 编程语言 > 正文

想要更新日期列中的日期,以及昨天日期的过去日期

如何解决《想要更新日期列中的日期,以及昨天日期的过去日期》经验,为你挑选了1个好方法。

这听起来很奇怪的用例,但我想用一些数据更新日期列.请在下表中找到.我正在处理JSON格式的数据.

CityName | data1 | data2 | date

Mumbai   | 1.234 | 2.3456| Sat Jan 20 2018 12:00:00 GMT+0000 (UTC)
Mumbai   | 6.234 | 2.3456| Sat Jan 20 2018 18:00:00 GMT+0000 (UTC) 
Mumbai   | 1.234 | 2.3456| Sun Jan 21 2018 12:00:00 GMT+0000 (UTC) 
Mumbai   | 2.234 | 2.3456| Sun Jan 21 2018 18:00:00 GMT+0000 (UTC)
Mumbai   | 1.234 | 2.3456| Sun Jan 21 2018 24:00:00 GMT+0000 (UTC)
Mumbai   | 1.234 | 2.3456| Sun Jan 21 2018 00:00:00 GMT+0000 (UTC)
Mumbai   | 8.234 | 2.3456| Fri Jan 19 2018 01:00:00 GMT+0000 (UTC)
Mumbai   | 3.334 | 2.3456| Fri Jan 19 2018 12:00:00 GMT+0000 (UTC)
Mumbai   | 8.214 | 2.3456| Fri Jan 19 2018 14:00:00 GMT+0000 (UTC)
Mumbai   | 19.234| 2.3456| Thu Jan 18 2018 12:00:00 GMT+0000 (UTC)
Pune     | 1.234 | 2.3456| Wed Jan 17 2018 12:00:00 GMT+0000 (UTC)
Pune     | 1.234 | 2.3456| Wed Jan 17 2018 12:00:00 GMT+0000 (UTC)
Pune     | 1.234 | 2.3456| Sat Jan 20 2018 12:00:00 GMT+0000 (UTC)
Pune     | 1.234 | 2.3456| Sat Jan 20 2018 18:00:00 GMT+0000 (UTC) 
Pune     | 1.234 | 2.3456| Sun Jan 21 2018 12:00:00 GMT+0000 (UTC) 
Pune     | 1.234 | 2.3456| Sun Jan 21 2018 18:00:00 GMT+0000 (UTC)
Pune     | 1.234 | 2.3456| Sun Jan 21 2018 24:00:00 GMT+0000 (UTC)
Pune     | 1.234 | 2.3456| Sun Jan 21 2018 00:00:00 GMT+0000 (UTC)
Pune     | 1.234 | 2.3456| Fri Jan 19 2018 01:00:00 GMT+0000 (UTC)
Pune     | 1.234 | 2.3456| Fri Jan 19 2018 12:00:00 GMT+0000 (UTC)
Pune     | 1.234 | 2.3456| Fri Jan 19 2018 14:00:00 GMT+0000 (UTC)
Ahmadabad| 1.234 | 2.3456| Thu Jan 18 2018 12:00:00 GMT+0000 (UTC)
Ahmadabad| 1.234 | 2.3456| Wed Jan 17 2018 12:00:00 GMT+0000 (UTC)
Ahmadabad| 1.234 | 2.3456| Wed Jan 17 2018 12:00:00 GMT+0000 (UTC)

现在,根据城市名称,我想更新所有日期,以便今天是2018年7月23日,我选择了Mumbai,现在我想首先按降序顺序获取与所选城市相关的所有数据(例如'孟买')按日期递减的顺序,按照昨天的日期,即2018年7月22日的每4条记录开始更新记录,这样时间戳将变化6小时.但不应更新剩余的列数据.

然后对于孟买市,如果我按降序排序数据,那么我得到了这个

Mumbai   | 1.234 | 2.3456| Sun Jan 21 2018 12:00:00 GMT+0000 (UTC) 
Mumbai   | 2.234 | 2.3456| Sun Jan 21 2018 18:00:00 GMT+0000 (UTC)
Mumbai   | 1.234 | 2.3456| Sun Jan 21 2018 24:00:00 GMT+0000 (UTC)
Mumbai   | 1.234 | 2.3456| Sun Jan 21 2018 00:00:00 GMT+0000 (UTC) 
Mumbai   | 1.234 | 2.3456| Sat Jan 20 2018 12:00:00 GMT+0000 (UTC)
Mumbai   | 6.234 | 2.3456| Sat Jan 20 2018 18:00:00 GMT+0000 (UTC) 
Mumbai   | 8.234 | 2.3456| Fri Jan 19 2018 01:00:00 GMT+0000 (UTC) 
Mumbai   | 3.334 | 2.3456| Fri Jan 19 2018 12:00:00 GMT+0000 (UTC)
Mumbai   | 8.214 | 2.3456| Fri Jan 19 2018 14:00:00 GMT+0000 (UTC)
Mumbai   | 19.234| 2.3456| Thu Jan 18 2018 12:00:00 GMT+0000 (UTC)

现在预计o/p应该是

Mumbai   | 1.234 | 2.3456| Sun Jul 22 2018 00:00:00 GMT+0000 (UTC) 
Mumbai   | 2.234 | 2.3456| Sun Jul 22 2018 06:00:00 GMT+0000 (UTC)  
Mumbai   | 1.234 | 2.3456| Sun Jul 22 2018 12:00:00 GMT+0000 (UTC)
Mumbai   | 1.234 | 2.3456| Sun Jul 22 2018 18:00:00 GMT+0000 (UTC) 
Mumbai   | 1.234 | 2.3456| Sat Jul 21 2018 00:00:00 GMT+0000 (UTC)
Mumbai   | 6.234 | 2.3456| Sat Jul 21 2018 06:00:00 GMT+0000 (UTC)  
Mumbai   | 8.234 | 2.3456| Sat Jul 21 2018 12:00:00 GMT+0000 (UTC)
Mumbai   | 3.334 | 2.3456| Sat Jul 21 2018 18:00:00 GMT+0000 (UTC)
Mumbai   | 8.214 | 2.3456| Fri Jul 20 2018 00:00:00 GMT+0000 (UTC)
Mumbai   | 19.234| 2.3456| Fri Jul 20 2018 06:00:00 GMT+0000 (UTC)

我不应该更新我的其他列数据,而只应更新我要更新的日期,方法是记录相同日期但不同时段的4条记录.

或者也可以接受任何中间件逻辑(更喜欢Javascript),它不会真正更新数据库中的数据,但可以在两者之间操纵数据.

帮助将不胜感激....!



1> IVO GELOV..:

它非常简单 - 只需对行进行编号,然后根据行号计算时间(SQLfiddle)

SELECT 
  IF(@city = cityname, @ctr := @ctr + 1, @ctr := 0) AS rownum, 
  @city := cityname AS cityName,
  DATE_SUB(CURRENT_DATE, INTERVAL CEIL((@ctr + 1) / 4) DAY) AS datum,
  SEC_TO_TIME((@ctr % 4) * 21600) AS vreme
FROM tblCity 
JOIN (SELECT @ctr := 0) AS tmp 
ORDER BY cityName,date DESC

编辑 - 解释

(SELECT @ctr := 0) AS tmp 初始化值为0的自定义会话变量.它将用于计算每个城市的行数.

然后,您将获得城市和时间戳列表 - 按升序对城市进行排序,但按降序排列时间戳.

IF(@city = cityname, @ctr := @ctr + 1, @ctr := 0)确保每次为下一个城市启动一组新行时将rownumber重置为0 - 我们使用会话变量@city来捕获切换.

DATE_SUB(CURRENT_DATE, INTERVAL CEIL((@ctr + 1) / 4) DAY)只需获取当前日期并从中减去多少天,因为当前城市有4行组.对于行0/1/2/3,它将减去1,然后对于行4/5/6/7减去2,然后对于行8/9/10/11减去3,依此类推.

SEC_TO_TIME((@ctr % 4) * 21600) 简单地以HH:MM:SS格式从几秒钟转换为时间,并且每行增加6小时.


推荐阅读
  • pipinstallbootstarp使用bower安装bootstrap的命令是:bash$bowerinstallbootstrap不过问题出在如何安装bower上。官方网站上 ... [详细]
  • 报错:dpkg:errorprocessingpackageubuntu-core-launcher(--configure): dependencyproblems-leavin ... [详细]
  • Sublime text3配置C/C++编译环境
    安装sublimetext3后,一直很喜欢使用它看代码(这个高亮配色真的很好看)。它默认的运行环境就有CC++,在写了一个helloworld!后正常输出,但在加入scanf()输 ... [详细]
  • fetch()的用法
    发起获取资源请求的我们一般都会用AJAX技术,最近在学习微信小程序的时候,用到了fetch()方法。fetch()方法用于发起获取资源的请求。它返回一个promise,这个prom ... [详细]
  • react.js 从零开始(二)组件的生命周期
    什么是生命周期?组件本质上是一个状态机,输入确定,输出一定确定。当状态改变的时候会触发不同的钩子函数,可以让开发者做出响应。。一个组件的生命周期可以概括为初始化:状态下可以自定义的 ... [详细]
  • nginx利用反向代理调试后台接口
    1、location支持配置项目的绝对路径2、假设我们的后台API地址是以API开头,location^~api代表nginx将会拦截请求地址中包含api字样的请求,其实这就是 ... [详细]
  • 聊聊 asp.net core 认证和授权
    使用asp.netcore开发应用系统过程中,基本上都会涉及到用户身份的认证,及授权访问控制,因此了解认证和授权流程也相当重要,下面通过分析asp.netcore框架中的认证和授权 ... [详细]
  • 无标题页usingSystem;usingSystem.Data;using System.Configuration;usingSystem.Collections;using ... [详细]
  • 公司在几万前开发了一套系统,用asp.net+html+ajax+css开发的,在ie7,8这些低版本的浏览器下远行很好,不需要任何设置,但对于新的浏览器ie10需要设计兼容性视图。问题1 ... [详细]
  • https:nacos.ioen-usdocsquick-start-docker.htmlhttps:github.comnacos-groupnacos-dockermkdir ... [详细]
  • Ubuntu环境变量分为系统级环境变量和用户级环境变量。顾名思义,设置在系统级环境变量中的配置项作用范围为全系统,而设置在用户级环境变量中的配置项仅对当前用户起作用。系统及环境变量 ... [详细]
  • ActiveXUDP异步连接服务器当收到数据后,我想通过自定义事件通知JS并且显示在页面上。我JS部分是:try{testProj1newActiveXObject( ... [详细]
  • 如何使用jQuery实现一个类似GridView编辑,更新,取消和删除的功能
    这篇文章主要为大家展示了“如何使用jQuery实现一个类似GridView编辑,更新,取消和删除的功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑 ... [详细]
  • 1,效果图:[groot]$2,设置步骤:编辑~.bashrc文件,在最后增加设置行:#显示当面目录的最后一层目录#PS1'\[\e[32m\][\u@\h\W]$\[\e ... [详细]
  • 如何解决《ASP.NETCoreMVC防伪》经验,为你挑选了1个好方法。 ... [详细]
author-avatar
血红中国心_686
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有