select函数

sql数据库中查询类似于2012-05-01 00:00:00到2012-05-31 23:59:59的数据问题

 ̄綄美尐妖づ 提交于 2019-12-27 02:45:43
今天在做项目的过程中,遇到一个问题,数据库中有一张表中有一个时间的字段,我在查询数据的时候要求要按要求查询出一个时间段的数据,页面效果是上面的,当从页面选择一个年份和一个月份后 在后台要求转为date格式,即查询出2012-04-01 00:00:00 --2012-04-30 23:59:59时间段的数据 转的方法如下(transactionDateMonth为页面的月份,transactionDateYear为页面的年份) if(transactionDateMonth!=null&&!"".equals(transactionDateMonth)&&transactionDateYear!=null&&!"".equals(transactionDateYear)){ //根据页面的month和year来给出transactiondatefrom和transactiondateTo的时间,如页面为2012.1 //则transactiondateFrom = 2012-01-01,transactiondateTo = 2012.01-30 Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR,Integer.parseInt(transactionDateYear)); cal.set(Calendar

MySQL中使用LIMIT分页

情到浓时终转凉″ 提交于 2019-12-26 15:58:43
  需求:客户端通过传递pageNum(页码)和pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据。   我们知道MySQL提供了分页函数limit m,n,但是该函数的用法和需求不一样,所以就需要根据实际情况去改写以满足需求。分析如下:   查询第1条到第10条数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;   查询第10条到第20条数据的sql是:select * from table limit 10,20; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;   查询第20条到第30条数据的sql是:select * from table limit 20,30; ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10;   通过上面的分析,可以归纳得出符合需求的分页SQL伪代码是:select * from table limit (pageNum-1)*pageSize,pageSize。总而言之,我们只需要告诉数据库要从第几行开始拿多少条数据就行了。   但是

mysql的数据类型int、bigint、smallint 和 tinyint取值范围

荒凉一梦 提交于 2019-12-26 03:09:32
附录:(更新于2013-11-21) sql必知必会学习笔记: http://www.cnblogs.com/IPrograming/category/509859.html mysql 基本命令学习: http://blog.db89.org/the-mysql-the-basic-command/ 一、 mysql的字符串函数 对于针对字符串位置的操作,第一个位置被标记为1。 1.ASCII(str) 返回字符串 str 的最左面字符的ASCII代码值。 如果 str 是空字符串,返回 0 。如果 str 是 NULL ,返回 NULL 。 mysql> select ASCII('2'); -> 50 mysql> select ASCII(2); -> 50 mysql> select ASCII('dx'); -> 100 也可参见ORD()函数。 2.ORD(str) 如果字符串str最左面字符是一个多字节字符,通过以格式 ((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...] 返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与 ASCII() 函数返回的相同值。 mysql> select ORD('2'); ->

Mysql 字符函数详解

自古美人都是妖i 提交于 2019-12-26 03:09:14
MySql 所有字符串函数函数详解 ASCII(str) 返回str最左边第一位字符的ASCII编码,如果str为空,则返回 0 。如果str为NULL,则返回NULL -- 只返回a的ASCII编码 SELECT ASCII('ab') - 97 SELECT ASCII('a') - 97 -- 如果是数字,带不带引号是一样的效果 SELECT ASCII(23) - 50 SELECT ASCII(2) - 50 SELECT ASCII('2') - 50 BIN(N) 返回N的二进制数,N是数字类型,这个函数其实相当于CONV(N,10,2)。如果N是null则返回null,如果N是非数字的字符串则会返回0 SELECT BIN(2); - 10 SELECT CONV(2,10,2); - 10 SELECT BIN('23'); - 10111 SELECT CONV(23,10,2); - 10111 SELECT BIN('n'); - 0 BIT_LENGTH(str) 返回str的二进制长度 SELECT BIT_LENGTH('test'); - 32 SELECT BIT_LENGTH('测'); - 24 SELECT BIT_LENGTH('你好啊'); - 72 CHAR(N,... [USING charset_name])

python 协程, 异步IO Select 和 selectors 模块 多并发演示

被刻印的时光 ゝ 提交于 2019-12-26 00:42:13
主要内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 selectors 模块 多并发演示 协程 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程: 协程是一种用户态的轻量级线程 。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置。 协程的好处: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销   "原子操作(atomic operation)是不需要synchronized",所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序是不可以被打乱,或者切割掉只执行部分。视作整体是原子性的核心。 方便切换控制流,简化编程模型 高并发+高扩展性+低成本:一个CPU支持上万的协程都不是问题。所以很适合用于高并发处理。 缺点: 无法利用多核资源:协程的本质是个单线程,它不能同时将 单个CPU 的多个核用上,协程需要和进程配合才能运行在多CPU上

mysql控制流程函数(case,if,ifnull,nullif)

那年仲夏 提交于 2019-12-24 13:55:18
1.case...when... 用法   参考: http://www.cnblogs.com/qlqwjy/p/7476533.html CASE value WHEN [ compare-value ] THEN result [WHEN [ compare-value ] THEN result ...] [ELSE result ] END CASE WHEN [ condition ] THEN result [WHEN [ condition ] THEN result ...] [ELSE result ] END 在第一个方案的返回结果中, value = compare-value 。而第二个方案的返回结果是第一种情况的真实结果。如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL mysql> SELECT CASE 1 WHEN 1 THEN 'one' -> WHEN 2 THEN 'two' ELSE 'more' END; -> 'one' mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END; -> 'true' mysql> SELECT CASE BINARY 'B' -> WHEN 'a' THEN 1 WHEN 'b' THEN 2 END

Hive数据导入导出

五迷三道 提交于 2019-12-24 09:28:53
转载: https://www.cnblogs.com/fenghuoliancheng/p/10672012.html 1.5 Hive的数据存储 首先,Hive没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。其次,Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下数据模型:Table,External Table,Partition,Bucket。 Hive 中的 Table 和数据库中的 Table 在概念上是类似的,每一个 Table 在 Hive 中都有一个相应的目录存储数据。例如,一个表 xiaojun,它在 HDFS 中的路径为:/ warehouse /xiaojun,其中,wh 是在 hive-site.xml 中由 ${hive.metastore.warehouse.dir} 指定的数据仓库的目录,所有的 Table 数据(不包括 External Table)都保存在这个目录中。 Partition 对应于数据库中的 Partition 列的密集索引,但是 Hive 中 Partition 的组织方式和数据库中的很不相同。在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的

mysql基础学习二

帅比萌擦擦* 提交于 2019-12-24 04:00:39
视图 视图概念 视图是存储的查询语句,当调用的时候,产生结果集,视图充当的是虚拟表的角色。其实视图可以理解为一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图可以使用户操作方便,并保障数据库系统安全,如果原表改名或者删除则视图也失效。 视图操作 创建视图 语法结构: CREATE [ OR REPLACE ] VIEW [ view_name ] AS [ SELECT_STATEMENT ] ; 释义: CREATE VIEW : 创建视图 OR REPLACE : 可选,如果添加原来有同名视图的情况下会覆盖掉原有视图 view_name : 视图名称 SELECT_STATEMENT : SELECT 语句 e . g . create view c1 as select name , age from class_1 ; 视图表的增删改查操作 视图的增删改查操作与一般表的操作相同,使用insert update delete select即可,但是原数据表的约束条件仍然对视图产生作用。 删除视图 drop view [IF EXISTS] 视图名; IF EXISTS 表示如果存在,这样即使没有指定视图也不会报错。 drop view c1 ;

Top K问题的两种解决思路

眉间皱痕 提交于 2019-12-23 17:57:07
海量数据中找出前k大数(topk问题) 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些。 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个。建堆时间复杂度是O(mlogm),算法的时间复杂度为O(nmlogm)(n为10亿,m为10000)。 优化的方法:可以把所有10亿个数据分组存放,比如分别放在1000个文件中。这样处理就可以分别在每个文件的10^6个数据中找出最大的10000个数,合并到一起在再找出最终的结果。 以上就是面试时简单提到的内容,下面整理一下这方面的问题: top K问题 在大规模数据处理中,经常会遇到的一类问题:在海量数据中找出出现频率最好的前k个数,或者从海量数据中找出最大的前k个数,这类问题通常被称为top K问题。例如,在搜索引擎中,统计搜索最热门的10个查询词;在歌曲库中统计下载最高的前10首歌等。 针对top K类问题,通常比较好的方案是分治+Trie树/hash+小顶堆(就是上面提到的最小堆),即先将数据集按照Hash方法分解成多个小数据集

MySQL版本升级之5.6到5.7

℡╲_俬逩灬. 提交于 2019-12-23 16:30:38
两种升级方式 In-Place Upgrade : Involves shutting down the old MySQL version, replacing the old MySQL binaries or packages with the new ones, restarting MySQL on the existing data directory, and running mysql_upgrade . Logical Upgrade : Involves exporting existing data from the old MySQL version using mysqldump , installing the new MySQL version, loading the dump file into the new MySQL version, and running mysql_upgrade . 主从的升级: 主从想都替换二进制安装包为最新版本 停从,通过mysql_upgrade升级后,加参数 --skip-slaves-start 进行启动   加参数 --skip-networking重启主,拒绝来自应用的TCP/IP的连接,关闭binlog,执行mysql_upgrade,然后重启 注意点:在关闭服务时加参数 --innodb_fast