date函数

【HQL】函数汇总

匿名 (未验证) 提交于 2019-12-02 23:51:01
背景 SQL几乎是初级分析师80%的工作内容,当然在我的规划里,中级分析师已经要做好维度建模工作以及最好有OLAP系统工具啥的,或者已经能主动分析写文章了,尽量减少SQL的无效使用。这是我自己的定位,其他人无所谓。 anyway,SQL对分析师来说是一项很棒的工具,HQL即Hive SQL,相对MySQL 函数更多更复杂一些。 另外,在查询能使用哪个函数时,通常有三种情况: 一是记得某个函数名,但忘了参数怎么用,索引是函数名; 二是想要实现某个目的,不太清楚有什么函数能实现,索引是函数的作用; 三是想实现某个较为复杂的目的,不太清楚组合哪些函数能实现,这里通常涉及多个函数,索引是使用案例。 所以在后续文章中,前三列会体现这个问题。 数仓同步表 与MySQL这种事务性数据库不同的是,数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。前三个性质且不说,最后一个反映历史变化的是如何体现的呢?这在于同步线上事务表的方式。 线上表同步下来有三种方式,增量表、全量表、拉链表。 另外提一下,数仓都是在凌晨两三点T+1同步;除了字段外,数仓还有个分区的概念,用于快速取某一块的数据,通常日期dt会作为分区,其他例如业务类型啥的也可以作为分区

QuantLib 金融计算――基本组件之 Date 类

匿名 (未验证) 提交于 2019-12-02 22:51:30
如果未做特别说明,文中的程序都是 Python3 代码。 QuantLib 将金融领域的日期对象抽象为 Date 类,并提供了丰富的计算函数。需要注意的是,quantlib-python 中的 Date 类并不同于 python 自身包含的 datetime 类,也没有继承关系。 载入 QuantLib: import QuantLib as ql print(ql.__version__) 1.10 Date 对象的构造方式有两种,分别是 Date(serialNumber) ,其中 serialNumber 是一个整数,例如 24214,并且 1 对应 1899-12-31。这种用法和 Excel 中一样。(需要注意的是,在较新版本的 quantlib-python 中, serialNumber 的取值范围被限定在 367~109574,相应的日期范围是 1901-01-01 ~ 2199-12-31。) Date(d, m, y) ,其中 d 和 y 是整数; m 是 quantlib-python 中预留的特殊对象,专门用来表示月份: 一月: January (等于 1) ... 十二月: December (等于 12) Date 对象可以和整数做运算,用来向前或向后移动特定天数; Date 对象也可以和 Period 对象做运算,用来向前或向后移动特定的时间间隔。

Python实用黑科技――以某个字段进行分组

匿名 (未验证) 提交于 2019-12-02 22:51:30
需求: 当前有个字典实例,你想以某个字段比如”日期”对整个字典里面的元素进行分组。 方法: itertools.groupby()函数是专门用来干这个活的。请看下面这个例子,这里有一个列表构成的字典,你想按照日期来对列表进行分组,可以这么做: In [42]: from operator import itemgetter In [43]: from itertools import groupby In [44]: rows = [ ...: {'address' : '5412 N CLARK', 'date' : '07/01/2012'}, ...: {'address' : '5148 N CLARK', 'date' : '07/04/2012'}, ...: {'address' : '5800 E 58TH', 'date' : '07/02/2012'}, ...: {'address' : '2122 N CLARK', 'date' : '07/03/2012'}, ...: {'address' : '5645 N RAVENSWOOD', 'date' : '07/02/2012'}, ...: {'address' : '1060 W ADDISION', 'date' : '07/02/2012'}, ...: {'address' : '4801 N

Django基础一之web框架的本质

匿名 (未验证) 提交于 2019-12-02 22:51:30
我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求,服务端按照http协议的响应协议来响应请求,这样的网络通信,我们就可以自己实现Web框架了。    通过对socket的学习,我们知道网络通信,我们完全可以自己写了,因为socket就是做网络通信用的,下面我们就基于socket来自己实现一个web框架,写一个web服务端,让浏览器来请求,并通过自己的服务端把页面返回给浏览器,浏览器渲染出我们想要的效果。 html文件内容如下,名称为test.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="icon" href="wechat.ico"> <!--直接写在html页面里面的css样式是直接可以在浏览器上显示的--> <style> h1{ background-color: green; color: white; } </style> </head> <body> <h1>姑娘,你好,我是Jaden,请问约吗?嘻嘻~~</h1> <!-

Python时间日期格式化之time与datetime模块

匿名 (未验证) 提交于 2019-12-02 22:51:30
1 引言   在实际开发过程中,我们经常会用到日期或者时间,那么在Python中我们怎么获取时间,以及如何将时间转换为我们需要的格式呢?在之前的开发中,也曾遇到time、datetime等模块下的不同函数,这些函数名又很是相似,几次下来头都昏了,今天来彻底总结梳理一下Python中日期时间获取与格式化。 2 理论准备 UTC time Coordinated Universal Time,世界协调时,又称格林尼治天文时间、世界标准时间。与UTC time对应的是各个时区的local time,也就是本地时间,例如我们的北京时间。   epoch time表示时间开始的起点;它是一个特定的时间,不同平台上这个时间点的值不太相同,对于Unix而言,epoch time为 1970-01-01 00:00:00 UTC。   timestamp(时间戳) 也称为Unix时间 或 POSIX时间;它是一种时间表示方式,表示从格林尼治时间1970年1月1日0时0分0秒开始到现在所经过的毫秒数,其值为float类型。 但是有些编程语言的相关方法返回的是秒数,例如我们的天下第一编程语言-Python大法就是这样(请不要反驳我)。所谓的时间戳timestamp就是当前时间与格林尼治时间1970年1月1日0时0分0秒之间过了多少秒。   相应的,日期时间就有三种表示方法:   1

js时间Date对象介绍及解决getTime转换为8点的问题

自古美人都是妖i 提交于 2019-12-02 22:47:00
前言   在做时间转换的时候,发现用“2016-04-12”转出来的时间戳是 2016-04-12 08:00的时间点,而不是0点。 new Date('2016-04-12').getTime(); // 1460419200000 new Date(1460419200000); // Tue Apr 12 2016 08:00:00 GMT+0800   最后发现,如果将日期格式换成“2016/04/12”,则正常换算成0点。 new Date(new Date('2016/04/12').getTime()); // Tue Apr 12 2016 00:00:00 GMT+0800 概述   Date 对象是JavaScript提供的日期和时间的操作接口。它有多种用法。   JavaScript内部,所有日期和时间都储存为一个整数,表示当前时间距离1970年1月1日00:00:00的毫秒数,正负的范围为基准时间前后各1亿天。 Date()   作为一个函数,Date对象可以直接调用,返回一个当前日期和时间的字符串。 Date() // "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)" Date(2000, 1, 1) // "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)"   上面代码说明,无论有没有参数

pymysql内置功能

匿名 (未验证) 提交于 2019-12-02 22:06:11
视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 #语法:CREATE VIEW 视图名称 AS SQL语句 create view teacher_view as select tid from teacher where tname=‘李平老师‘; #于是查询李平老师教授的课程名的sql可以改写为 mysql> select cname from course where teacher_id = (select tid from teacher_view); +--------+ | cname | +--------+ | 物理 | | 美术 | +--------+ rows in set (0.00 sec) #!!!注意注意注意: #1. 使用视图以后就无需每次都重写子查询的sql,但是这么效率并不高,还不如我们写子查询的效率高 #2. 而且有一个致命的问题:视图是存放到数据库里的,如果我们程序中的sql过分依赖于数据库中存放的视图, 那么意味着,一旦sql需要修改且涉及到视图的部分,则必须去数据库中进行修改,而通常在公司中数据库有专门的DBA负责, 你要想完成修改,必须付出大量的沟通成本DBA可能才会帮你完成修改,极其地不方便 #修改视图,原始表也跟着改

mysql时间日期函数

匿名 (未验证) 提交于 2019-12-02 22:06:11
mysql时间日期函数 now(), current_timestamp(); -- 当前日期时间 current_date(); -- 当前日期 current_time(); -- 当前时间 date('yyyy-mm-dd hh:ii:ss'); -- 获取日期部分 time('yyyy-mm-dd hh:ii:ss'); -- 获取时间部分 date_format('yyyy-mm-dd hh:ii:ss', '%d %y %a %d %m %b %j'); -- 格式化时间 unix_timestamp(); -- 获得unix时间戳 from_unixtime(); -- 从时间戳获得时间 官网: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_yearweek 格式: 查询每个月1号 select * from lagouok where right(date_format([字段],'%Y-%m-%d'),2)=1 获取星期几 select dayofweek(now())-1 dayofweek(字段)=1 查询每个月星期二 mysql根据生日查询年龄 select year(curdate())-year(字段)-(right(curdate(),5)

mysql5.7 timeStamp默认值0000-00-00 00:00:00 报错

匿名 (未验证) 提交于 2019-12-02 22:06:11
从mysql5.5数据库导出的数据放到mysql5.7.10 报错 DROP TABLE IF EXISTS `passwd_reset`; CREATE TABLE `passwd_reset` ( `id` int(11) NOT NULL AUTO_INCREMENT, `staffId` int(11) DEFAULT NULL, `toEmail` varchar(50) DEFAULT NULL, `token` varchar(100) DEFAULT NULL, `validTime` int(11) DEFAULT NULL, `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `updateTime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=gbk; 报错 SQL] DROP TABLE IF EXISTS `passwd_reset`; 受影响的行: 0 时间: 0.000s [Err] 1067 - Invalid default value