Monday

Oracle 日期处理函数+常用函数示例

♀尐吖头ヾ 提交于 2020-04-24 06:01:57
参考自:原文链接(非常详细) 时间相关应用示例———— select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;——2019-10-21 14:34:15 select to_char(sysdate,'ddd-day-dy-Q-WW-W') from dual;——294-星期一-4-42-3(当年第几天-星期几-星期几缩写-第几季度-当年第几周-当月第几周) select to_date('2019-10-21 14:34:15','yyyy-mm-dd hh24:mi:ss') from dual;——字符转换为日期格式 select to_char (sysdate, 'yy-mm-dd-day-dy', 'NLS_DATE_LANGUAGE = American') from dual;——19-10-21-monday -mon (以英文显示日期) select * from nls_session_parameters;——查看系统支持的日期格式 select to_number(sysdate - (sysdate-1))*24*60*60*1000 from dual;——86400000(相差多少天、时、分、秒、毫秒,相应增删乘数即可) select to_date(null) from dual;—

【赵强老师】Redis案例分析:用setbit统计活跃用户

女生的网名这么多〃 提交于 2020-04-12 17:54:24
一、需求背景 首先,我们来看一下需求:网站统计用户登录的次数,具体如下: 网站有1亿个用户,有经常登录的,也有不经常登录的 如何来记录用户的登录信息 如何查询活跃用户:比如:一周内,登录3次的 二、使用传统的关系型数据库 我们使用传统的关系型数据库(比如:Oracle)来存储这样的数据,如下图所示。 每周产生7亿条数据,对于任何一个关系型数据库来说,都是非常不好维护的,对性能也会有很大的影响。 三、使用Redis的setbit操作 Redis支持对String类型的value进行基于二进制位的置位操作。通过将一个用户的id对应value上的一位,通过对活跃用户对应的位进行置位,就能够用一个value记录所有活跃用户的信息。如下图所未,下图中的bitmap有9个位被置为1,表示这9个位上对应的用户是今天的活跃用户。其中第15位表示uid为15的用户,第一位表示uid为0的用户。(如果你的uid不是从1开始的,比如从100000开始,实际上你也可以相应的用uid减去初始值来表示其位数,比如1000000用户对应到bitmap的第一位) 具体的代码类似下面这样: redis.setbit(key, user_id, 1 ) 这样一次记录的复杂度是O(1),在Redis中速度非常快。 下面代码是在Redis CLI中执行的Demo演示,比如:用户ID为100的用户在星期一登录了网站

vue时间处理工具momentjs

牧云@^-^@ 提交于 2020-04-05 19:25:17
时间处理工具momentjs 为什么要用? 自己写的时间处理工具类有兼容性, 网上找都处理很多可靠的很少,几个项目被坑惨了 以前用的 formatDate(timestamp, fmt = 'yyyy-MM-dd hh:mm:ss') { if (!timestamp) return null; let date = null; if (timestamp instanceof Date) { date = timestamp; } else { // 兼容 date = new Date(timestamp.replace(new RegExp(/-/gm), '/')); } const o = { 'y+': date.getFullYear(), 'M+': date.getMonth() + 1, 'd+': date.getDate(), 'h+': date.getHours(), 'm+': date.getMinutes(), 's+': date.getSeconds(), 'w+': date.getDay(), }; Object.entries(o).forEach(([rxp, value]) => { fmt = fmt.replace(new RegExp(rxp), ($1) => { const str = `0000${value}`; if

17日JDK 14 正式发布了,有些特性值得关注

早过忘川 提交于 2020-03-19 08:36:35
3 月,跳不动了?>>> 2020年3月17日JDK 14 正式发布了,其中还是有一些值得关注的新特性。如果你觉得我写的东西对于您有帮助,希望得到您的关注! 一、instanceof的模式匹配: Instanceof是java中用于检查对象引用是否为给定Type类型的实例,并返回布尔值。在Java 14之前,我们在完成判断之后,经常需要做一下类型的强制转换,如下: if (obj instanceof String) { String str = (String) obj; // 需要强转 .. str.contains(..) .. }else{ str = .... } Java 14增强功能特性: if (!(obj instanceof String str)) { .. str.contains(..) .. // 不再需要转换代码,实际发生了转换 } else { .. str.... } 更多示例: if (obj instanceof String str && str.length() > 5) {.. str.contains(..) ..} if (obj instanceof String str || str.length() > 5) {.. str.contains(..) ..} 注意:仅当object不为null时,instanceOf才会匹配

JDK 14如期发布,16个新特性快速预览

别说谁变了你拦得住时间么 提交于 2020-03-18 09:31:54
某厂面试归来,发现自己落伍了!>>> JDK 14已经于2020年3月17日如期发布。本文介绍JDK 14特性。 JEP 305: instanceof的模式匹配(预览) 通过对instanceof运算符进行模式匹配来增强Java编程语言。 模式匹配允许程序中的通用逻辑,即从对象中有条件地提取组件,可以更简洁,更安全地表示。 这是JDK 14中的预览语言功能。 动机 几乎每个程序都包含某种逻辑,这些逻辑结合了对表达式是否具有某种类型或结构的测试,然后有条件地提取其状态的组件以进行进一步处理。例如,以下是在Java程序中常见的instanceof-and-cast用法: if (obj instanceof String) { String s = (String) obj; // 使用s } 上述示例中,为了能够安全地将obj转为我们期望的String类型,需要通过instanceof运算符对obj进行类型判断。这里发生了三件事: 测试obj是否是一个String 将obj转换为String 声明新的局部变量s,以便我们可以使用字符串值。 这种模式很简单,并且所有Java程序员都可以理解,但是由于一些原因,它不是最优的。 语法乏味 同时执行类型检测和类型转换并不是必要的 String类型在程序中出现了3次,这混淆了后面更重要的逻辑 重复的代码容易滋生错误 在JDK 14中

汉吉斯特Hanjst+更新升级:error reporting, innerLoop和loadingLayer

好久不见. 提交于 2020-03-12 01:53:37
过去的几个月里,汉吉斯特Hanjst进行了一些升级,有功能增强,也有性能优化,为Hanjst的生产环境部署增砖添瓦、保驾护航。为便于后续维护和持续更新改进,兹备忘于下。 * 12:48 Saturday, April 27, 2019, + readable error reporting for template erros * 19:19 Sunday, May 19, 2019, + renderTemplateRecurse for deep-in include files. * 18:44 Friday, May 31, 2019, + allow limited support for variables in xxxelse scope, bugfix for includeScript. * 07:58 6/2/2019, + imprvs with _appendScript to appendScript for async call. * 16:31 Wednesday, June 5, 2019, + imprvs with parentNode=BODY * 19:18 Monday, June 10, 2019, + bugfix for asyncScripts. * 22:29 Thursday, June 13, 2019, +

SQL获取本周,上周,本月,上月的开始时间和结束时间

半腔热情 提交于 2020-02-27 15:44:04
DECLARE @ThisWeekStartTime NVARCHAR(100),@ThisWeekEndTime NVARCHAR(100),--本周 @LastWeekStartTime NVARCHAR(100),@LastWeekEndTime NVARCHAR(100),--上周 @ThisMonthStartTime NVARCHAR(100),@ThisMonthEndTime NVARCHAR(100),--本月 @LastMonthSartTime NVARCHAR(100),@LastMonthEndTime NVARCHAR(100),--上月 @LastestHalfYearStartTime NVARCHAR(100),@LastestHalfYearEndTime NVARCHAR(100),--近半年 @LastestOneYearStartTime NVARCHAR(100),@LastestOneYearEndTime NVARCHAR(100)--近一年 SELECT @ThisWeekStartTime= CONVERT(nvarchar(10), DATEADD(wk, DATEDIFF(wk,0,DATEADD(dd, -1, getdate()) ), 0),121)--本周开始时间 SELECT @ThisWeekEndTime=

日期格式化跨年bug,是否与你不期而遇?

半腔热情 提交于 2020-01-06 20:56:01
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 2020年来临之前,日期格式化操作也为程序员准备了一个跨年级别的bug,不知你的系统是否遇到? 临近2020年元旦的几天,不少网站出现了类似2020/12/29,2020/12/30,2020/12/31这样的日期显示。神奇不?就连微信的提供的订阅号助手工具都出现了这样的错误。 下面两张图是本公众号“程序新视界”在12月31日订阅号助手助手中的截图。 新增粉丝时间显示的部分内容。 评论区的时间显示的部分内容。 上图中,新增粉丝显示的时间和评论的时间均为“2020/12/31”。那么,下面我们就来分析一下出现此bug的原因。实例胜千言,先用示例还原一下此bug。 示例一,还原示例: public class DateFormatBug { public static void main(String[] args) throws ParseException { // 示例一 printBugDate(); } private static void printBugDate() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); Date date = sdf.parse(

一个程序员购买保险之路-1(适用于所有人)

匆匆过客 提交于 2019-12-23 23:48:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 程序员可以额外做的 下载搜狗医疗、保险、疾病相关的词库(<https: pinyin.sogou.com dict />) 通过抓取主流产品的条款,用 Elasticsearch 或 PostgreSQL zhparser 进行分词、分类型、分段落存储 通过自身身体病症情况,提取出自己病状与之相关的各个产品之间的差异数据,通过对比分析了解其对自身的优劣 如果可以拿到本地区医院疾病趋势,还可以结合本地人情况做特定分析等等 有兴趣的童鞋也可以按这个思路做成一个产品出来,这个思路特别适合做 DNA 检测的公司 下个礼拜再出续集,说:寿险、医疗、意外 额外信息 上周有人私信问我:Bilibili 上 Sculptor Boot 视频的背景乐叫啥,今天这篇文章的配乐就是答案:I love monday,i love everyday. 如果你认同我,认同这个程序员的思考方式,请点赞,也可以关注下我们的编程类最新作品 Sculptor Boot:项目思维化的《代码生成器》体系 TKey 以材料最全、示例最多为目标的单点登录系统(SSO) CDK8S 研发风格 全文总结 最新的互联网保险新规正在征求中,第三方平台销售保险可能会被限制,所以未来保险市场可能还会有变化。 作者以开发者、非保险相关专业角度书写本篇。以下大部分知识

Java 13 新特性及实战案例

瘦欲@ 提交于 2019-12-15 19:39:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 近期 Java 界好消息频传。先是 Java 13 发布,接着 Eclipse 也发布了新版本表示支持新版本的Java 特性。 本文介绍了 Java 13 的新特性并展示了相关的示例。 2019年9月17日,Java 13 正式发布。特性如下。 Java 13 新特性 此版本带来了以下几大新特性: JEP 350,Dynamic CDS Archives:扩展应用程序类-数据共享,以允许在 Java 应用程序执行结束时动态归档类。归档类将包括默认的基础层 CDS(class data-sharing)存档中不存在的所有已加载的应用程序类和库类。 JEP 351,ZGC: Uncommit Unused Memory:增强 ZGC 以将未使用的堆内存返回给操作系统。 JEP 353,Reimplement the Legacy Socket API:使用易于维护和调试的更简单、更现代的实现替换 java.net.Socket 和 java.net.ServerSocket API 使用的底层实现。 JEP 354,Switch Expressions (Preview):可在生产环境中使用的 switch 表达式,JDK 13 中将带来一个 beta 版本实现。switch 表达式扩展了 switch 语句