5000字带你玩转MySQL获取时间、格式转换

Kettle数据迁移实战:从CSV到MySQL的高效导入指南 本文详细介绍了使用Kettle工具将CSV数据高效迁移到MySQL数据库的实战指南。通过可视化操作和性能优化技巧,如批量提交和并行处理,显著提升数据导入速度。文章还涵盖了环境配置、常见问题排查及自动化监控等进阶内容,适合数据分析师和开发者快速掌握ETL流程。 阅读详情

前言

时间在数据库中经常作为时间索引,在数据入库和出库以及更新的时候都需要变化。在一些指标计算或者是提取某段时间的数据时,都会根据数据库中的时间索引数据进行操作。因此很大一部分我们操作数据都得先从时间数据下手,但是想要真正提取到我们想要的时间作为索引,还需要我们掌握许多功能函数方便我们操作,这是一个比较复杂的运用过程。因此特地写下这篇文章,记录一些十分好用常用的处理数据库SQL时间数据的函数,以及实例运用这些函数完成一些复杂查询任务。希望能够帮助到正在看此博文的各位,如果还有什么问题解决不了尽请在评论区提出,博主会一一作答。

一、SQL时间存储类型

首先要玩好处理时间的操作,要先明白此数据类型能够干什么事,有什么用。MySQL中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。

1.date

日历日期,例如:‘2022-6-17’.format形式为:%Y-%m-%d。在其他语言中,像Python、JAVA等利用函数输出Date都为yyyy-mm-dd的形式,业务精确到天就用这个格式。

​

2.datetime

具体时间日期 例如:'2022-6-17 17:00:22' format格式为:%Y-%m-%d %H:%M:%s.当业务需求中需要精确到秒时,可以用这个时间格式。

 

3.time

具体时间不包括日期,例如:'17:11:00' format格式为:%H:%M:%s。当业务需求中只需要每天的时间,可以用这个时间格式。

​

4.timestamp

和datetime存储类型一样,也是既存储时间又存储日期。format格式为:%Y-%m-%d %H:%M:%s.

​

PS.datetime与timestamp的区别

  1. 存储方式不同,对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出.

  2. 存储的时间范围也不一样timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’。 datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。

  3. timestamp有一个机制是自动初始化与更新,意思就是如果插入数据的时候没有对该值进行赋值,则自动写入当前的[时间戳]对应的格式。在更新其他字段的时候该自动会自动更新到当前的时间

对比总结

  1. timestamp和datetime除了存储范围和存储方式不一样,没有太大区别。如果对于跨时区的业务,TIMESTAMP更为合适

  2. timestamp有自动初始化和更新,当你update某条记录的时候,该列值会自动更新,这是和datatime最大的区别

5.varchar/bigint

有时候存储入库格式不是固定的,可能出现入库时间精确到日或者是小时又可能只有月,这种灵活不固定的时间就只能使用字符串或者是BIGINT这种类型格式来进行。

​这种就需要提取出来后期处理,转换为时间格式进行计算或者进行逻辑运算得到自己想要的时间。

二、获取时间

1.now()

获取当地具体日期和时间:

select now() as time 复制代码

​

2.localtime()

获取当地具体日期和时间,与now()一样:

select LOCALTIME() as time 复制代码

​

3.current_timestamp()

获取当地具体日期和时间,与now()一样:

select current_timestamp() as time 复制代码

​

4.localtimestamp()

获取当地具体日期和时间,与now()一样:

select LOCALTIMESTAMP() as time 复制代码

​

以上这4种函数功能都与now()功能一样获取当地具体日期和时间,平常使用一个now()就好了好记。

5.sysdate()

获取当地具体日期和时间,与now()上述几个函数不一样的是,now()在执行该函数之前就已得到了。

select sysdate() as time 复制代码

​

以上函数均为获取具体日期和时间。


6.curdate()

获取当地具体日期:

select curdate() as time 复制代码

​

7.current_time()

获取当地具体日期,和curdate()函数功能一样:

select current_date() as time 复制代码

​

以上函数均为获取具体日期。


8. curtime()

获取具体的时间:

select curtime() as time 复制代码

​

9.current_time()

获取具体的时间:

select current_time() as 复制代码

​

以上均为获得具体时间的函数。


10. utc_date()

获取UTC时间的日期,因为我们是东八时区要快8个小时,本地时间=UTC时间+8小时。

select utc_date() as time 复制代码

​

由于博主现在是晚上九点所以还是6月17日,如果是早上八点之前就是6月16号了。

11.utc_time

获取UTC时间的时间。

select utc_time() as time 复制代码

12.utc_timestamp()

获取UTC时间的具体日期和时间,在做跨国业务时非常有用。

select utc_timestamp() as time 复制代码

​

以上为获取UTC时间函数。


13.HOUR(SYSDATE())

获取系统具体小时:

select HOUR(SYSDATE()) as time 复制代码

​

14.MINUTE(SYSDATE())

获取当前系统分钟:

select MINUTE(SYSDATE()) as time 复制代码

​

其他获取year,month,day,second,microsecond都可以通过这种方法获得,这里不再演示。

三、转换时间

如果是用BIGINT或者是字符串varchar存储的时间数据就需要将该列数据转换为时间数据,或者输入一个字符串想要转化为时间格式都需要转换函数,这里详细介绍各种方法解决这种问题:

1.cast()

基础语法格式:

cast( <数据> as <数据类型> ) 复制代码

可转换的类型有字符串varchar、日期date、时间time、日期时间datetime、浮点型decimal、整数signed、无符号整数unsigned。

例如我们拿到展示的sql表格:

​

该列类型为BIGINT:

​

下面直接用cast转换为时间类型:

select cast(time as date) as time from value_test 复制代码

​

可见如果有与其他format不对应,只记录到月或者记录到小时时,将不能识别转为时间类型。也可以切换成time或是datetime:

select cast(time as datetime) as time from value_test 复制代码

​

select cast(time as time) as time from value_test 复制代码

​

只要是有6个字符的都会被识别为%H:%M:s。

我们可以修改表再看:

​

​

2.convert()

基础语法格式:

convert(<数据>,<数据类型>) 复制代码
select CONVERT(time ,date) as time from value_test 复制代码

​

和上述cast的功能一样,但是cast是强制转换。

所以说如果涉及到记录有多个不同维度的时间数据存储的时候,一般是不用数据库时间类型去做存储的。看cast的例子就可以看出。

3.str_to_date()

str_to_date()函数可以将时间格式的字符串按照所指定的显示格式(format)转换为不同的时间类型。

基础语法格式:

str_to_date(<字符串>,<format格式>') 复制代码
select str_to_date(time,'%Y%m%d') as time from value_test 复制代码

​

这个函数自由性要比cast和convert的自由性高很多,可以自由定义format,但是不会仅显示单个年或日,后面会根据字符的长度补零填充:

select str_to_date(time,'%Y') as time from value_test 复制代码

​

这里我们可以更改表格的时间观察是否不满足或者超过标准的时间格式能够被识别:

​

select str_to_date(time,'%Y%m%d') as time from value_test 复制代码

​

select str_to_date(time,'%Y%m%d%H%i%S') as time from value_test 复制代码

​可见兼容能力是很强的。

如果是时间都是统一格式记录的直接使用cast或者convert快速转换为时间格式就好了,若是记录的有多个维度的时间应该使用str_to_date函数来转换。

四、时间转换

时间转换一般是把时间类似数据转换为其他类型数据,以上例子cast()函数和convert()函数都可以做到。改变一下位置就好了,由于上述已经提到这里就做两个简单的例子展示:

1.cast()

select cast(create_time as signed) as time from value_test 复制代码

​

2.convert()

select convert(create_time ,signed) as time from value_test 复制代码

​

3.date_format()

其实最主要的还是使用data_format(),date_format()函数可以以不同的格式显示日期/时间数据,可以实现日期转换成字符串。也就是将时间数据读取之后按照format形式转换为字符串输出,当然转换为了字符串我们又可以转为其他的格式。

语法格式:

date_format(<时间类型数据>,<format格式>) 复制代码

其中format的格式参数可选的有:

格式

描述

%a

星期名缩写

%b

月名缩写

%c

代表几月的数值

%D

带时序后缀的数值-天

%d

天数,数值(00-31)

%e

天数,数值(0-31)

%f

微秒

%H

小时 (00-23)

%h

小时 (01-12)

%I

小时 (01-12)

--

--------------------------

%i

分钟,数值(00-59)

%j

转换为天数 (001-366)

%k

小时 (0-23)

%l

小时 (1-12)

%M

月名

%m

月,数值(00-12)

%p

AM 或 PM

%r

时间,12-小时(hh:mm:ss AM 或 PM)

%S

秒(00-59)

%s

秒(00-59)%T

时间, 24-小时 (hh:mm:ss)

--

-----------------------------

%U

从年初首周开始计算 (00-53) 星期日是一周的第一天

%u

从年初首周开始计算 (00-53) 星期一是一周的第一天

%V

周 (01-53) 星期日是一周的第一天,与 %X 使用

--

----------------------------

%v

周 (01-53) 星期一是一周的第一天,与 %x 使用

%W

星期名

%w

当前周的天数,(0=星期日, 6=星期六)

%X

年,其中的星期日是周的第一天,4 位,与 %V 使用

%x

年,其中的星期一是周的第一天,4 位,与 %v 使用

--

--------------------------

%Y

年,4 位

%y

年,2 位

自己大家可自己随意组合使用:

select date_format(create_time, '%x%v') as time from value_test 复制代码

​但是记住转换输出的都为字符串,转换为其他类型都需要再次转换。

Kafka Connect 集成 MySQL 与 Elasticsearch 的核心原理与避坑指南 Kafka Connect 并非简单数据搬运工具,而是基于分布式协调、CDC机制与schema演化的数据编排系统。其本质是桥接异构系统间的数据契约——MySQL依赖binlog行级变更与事务一致性,Elasticsearch强调文档最终一致与倒排索引语义,而Kafka则提供分区有序、offset可追溯的消息模型。技术价值在于实现低延迟、可重放、端到端至少一次的实时同步;典型场景包括订单库→搜索服务、业务数据库→分析平台等实时数仓链路。本文聚焦MySQL和Elasticsearch两大高频集成目标,深入解析权 阅读详情

相关推荐

Pyecharts 2.0 地图数据源实战:3种格式转换与5个常见错误排查

本文详细介绍了Pyecharts 2.0地图数据源的实战技巧,包括CSV、JSON和数据库三种格式的转换方法,以及5个常见错误的排查方案。通过标准化省份名称、数值范围规范化等数据清洗步骤,确保中国地图等可视化效果准确呈现,帮助开发者高效处理地理数据可视化问题。

weixin_30753873的博客 389

Mysql的INTERVAL()函数和INTERVAL关键字

一,INTERVAL()函数 INTERVAL()函数可以返回分段后的结果,语法如下: INTERVAL(N,N1,N2,N3,..........) 其中,N是要判断的数值,N1,N2,N3,...是分段的间隔。 这个函数的返回值是段的位置: 如果N<N1,则返回0, 如果N1<=N<N2,则返回1, 如果N2<=N<N3,则返回2。 所以,区间是前闭后开的。 举个例子: 有这样的数据: 然后执行以下sql: SELECT id,perce.

lkforce 10万+

别再手动抄表了!一个IGT-SER网关搞定多台西门子PLC到MySQL的集中上报

本文详细介绍了如何利用IGT-SER智能网关实现西门子S7-1200和S7-1500 PLC数据自动采集并集中上报至MySQL数据库的解决方案。通过工业级硬件设计和高效的数据处理流程,该方案大幅提升了工业自动化数据采集的效率和准确性,适用于设备监控、能源管理等多种工业场景。

weixin_30312563的博客 337

一文速学-玩转MySQL中INTERVAL关键字和INTERVAL()函数用法讲解

时间在数据库中经常作为时间索引,在数据入库和出库以及更新的时候都需要变化。在一些指标计算或者是提取某段时间的数据时,都会根据数据库中的时间索引数据进行操作。因此很大一部分我们操作数据都得先从时间数据下手,但是想要真正提取到我们想要的时间作为索引,还需要我们掌握许多功能函数方便我们操作,这是一个比较复杂的运用过程。 在本人博客数据库MySQL已有三篇详细解释了大部分关于处理时间数据的函数以及实例运用,如果对这一方面有需求的可以看这两篇:...

master_hunter的博客 1万+

手把手式介绍 ADNI 影像数据下载

1.搜索 1.1登录 打开ADNI的官网:http://adni.loni.usc.edu/,进入下面的界面。 点击 DATA&SMPLES 下的 ACCESS DATA AND SAMPLES,如下图。 页面跳转以后点击中间的“LOGIN”,这时会跳出一个新的界面,然后在右上角输入自己的帐号、密码即可。如果没有权限可以跳转到第2部分看看如何申请权限。 登录以后选择DOWNLOAD下的 Image Collections就是搜索下载影像数据,其他还有一些学习测试数据和遗传数据。 1.2 sea

永远想不起来更新的博客 1万+

Linux SMP系统多核启动机制详解

对称多处理(SMP)是现代操作系统支持多核并行计算的基础架构。其核心原理是通过引导处理器(BSP)初始化系统环境后,通过处理器间中断(IPI)机制唤醒应用处理器(AP)。在x86架构中,AP启动时处于实模式,需要特殊的trampoline代码完成保护模式切换和分页设置。这种设计既保证了系统初始化的正确性,又实现了多核并行处理的性能优势。理解SMP启动流程对优化系统启动速度和调试多核问题至关重要,特别是在云计算和嵌入式系统中,高效的SMP初始化能显著提升系统响应能力。本文以Linux内核为例,深入解析了从BS

weixin_35006125的博客 291

MySQL INTERVAL 关键字指南

您可以将其用于不同的目的,例如查找将在未来10天内完成课程的学生、会员将在下个月到期的成员列表等。间隔值也可以与其他日期时间函数一起使用,例如ADDDATE()、DATE_ADD()、DATE_SUB()、TIMESTAMPDIFF()等。此外,您也可以指定自己的日期时间,但必须采用有效的日期时间格式。在这里,我们使用了DATE_ADD()和DATE_SUB()函数来添加和减去指定日期的间隔值。我们将创建一个表格,我们将在其中存储会员的数据以及他们的注册日期和会员资格的到期日期。...

allway2的博客 7123

雷达原理习题答案【西电】

  目前教材用的是陈老师新版的,但是,我发现课后题有一部分是之前某本书里的。答案如下【建议参看原题→查阅答案】 【原题点这里!!点这里!!】 目录跳转功能目前好像只支持网页版 文章目录% 第一章、第二章% 第三章% 第四章% 第五章% 第六章% 第七章% 第八章 % 第一章、第二章 % 第三章 % 第四章 % 第五章 % 第六章 % 第七章 % 第八章 ...

薛定谔的壳的博客 1万+

MySQL中Interval关键字的使用,看这一篇就够啦

最近需求上碰到了和INTERVAL关键词相关的内容,因此特意做个记录,记录其用法和应用场景。

hello_boyu的博客 6524

【Halcon 】Halcon 实战:如何为 XLD 模板添加极性信息以提升匹配精度?

本文介绍了Halcon中为XLD轮廓模板添加极性信息的实用技巧。通过先以"ignore_local_polarity"模式创建模板,首次匹配获得位置后,使用set_shape_model_metric运算符结合真实图像为模板注入极性信息(边缘明暗方向)。这种方法弥补了XLD模板初始不支持极性的缺陷,可显著提升后续匹配的精度和抗干扰能力。实验显示,添加极性信息后的模板匹配效果明显优于无极性的匹配结果。该技术特别适用于基于手动绘制或处理后的XLD轮廓创建模板的场景。

songhuangong123的博客 753

人工智能之数学基础:弄懂数学本质,让我们不再害怕数学

数学的用途远远超过了人们的想象,甚至无处不在,任何领域都需要用到数学知识,人工智能也不例外。我将尽可能地将数学知识和机器学习算法相结合,让大家知道这些数学知识咋人工智能领域中的应用,使得数学的学习不会过于枯燥,同时也帮助大家扫清在学习算法过程中的数学障碍。除此之外,我还希望帮助大家建立一种不一样的数学思维,不再将数学看成是符号的演算、公式的推导,而是将数学看成是一种描述这个世界的工具,这样你就会发现这个世界处处有数学。当我们面对问题的时候,你是否会对问题进行抽象,然后通过数学来解决问题?

huanfeng_AI的博客 634

mysql_INTERVAL函数的使用

【代码】INTERVAL函数的使用。

qq_44275015的博客 1940

多模态论文笔记——CogVLM和CogVLM2

本文详细介绍LoRA版本的多模态模型——CogVLM和CogVLM2。在SD3中使用其作为captioner基准模型的原因和优势。

haopinglianlian的博客 2205

mysql学习教程,从入门到精通,SQL常用函数(40)

SQL(Structured Query Language)是一种用于管理和操作关系数据库的编程语言。SQL提供了许多内置函数,这些函数可以对数据库中的数据进行各种计算和操作。

qq_45746668的博客 958

Python爬虫实战:公共资源交易平台招标数据采集实战 - 从零构建企业情报系统(附CSV导出 + SQLite持久化存储)!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 1288

图文详解秋叶ComfyUI整合包开启密码访问教程(附内网穿透实战经验) ComfyUI密码、ComfyUI-Login、ComfyUI内网穿透、秋叶整合包、ComfyUI安全防护

想远程访问 ComfyUI(跨设备或公网)不希望任何人随意使用或篡改服务需要给 ComfyUI 添加登录验证机制只要按照本文教程,安装插件,并设置好用户名密码,你就能把服务加上一道强力的门槛。📌配合ngrokfrp等内网穿透工具使用公网域名推荐启用 HTTPS(SSL证书可以用宝塔/ZeroSSL 申请)密码可以设置复杂一些,定期更换更安全📬如果你在配置过程中遇到问题,欢迎评论区留言交流,或者私信我,后续我也会更新更多 ComfyUI 插件教程、安全部署经验等内容。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2740

日期数据 Oracle 与 MySQL的区别

注意:数据库中的日期是一种特殊类型,需要一些函数进行转换 Oracle: to_date(data_str,format_str) 把字符串按照一定的格式转换成日期数据 to_char(date,'yyyy-mm-dd') to_char(date,format_str) 把日期数据按照一定的格式转换成字符串 to_char(date,'yyyy-mm-dd') ...

love、reading的博客 877

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

基于ssm微摄影交流社区的软件设计与开发746y19ni(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

研究目标: 设计并实现一个功能完整、用户体验良好的微摄影交流社区,支持: 用户创作与互动:发布、浏览、点赞、评论、收藏摄影作品。 社区管理:话题分类、标签系统、内容审核、用户举报。 社交功能:关注系统、私信通知、动态推送。 技术学习:教程分享、器材讨论、摄影活动报名。

h2345678的博客 977

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

mysql查询日期在当前日期之后的所有记录_面试必备sql知识点——MySQL基础进阶...

上期讲解了MySQL的一些基础知识(面试必备sql知识点——MySQL基础)本期继续深化知识点,基于基础,做进一步延伸。学习就是个不断反刍的过程,将碎片化的知识,搭建成完整的框架体系,才能够真正掌握。如果对你有帮助,建议点赞收藏!内容大纲:一、条件CASE表达式case 函数的格式为:case when 判断表达式 then 表达式 else 表达式 endelse 可省略,end不可省略。连续...

weixin_29978783的博客 2233

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【20180507】MySQL主从在线修改binlog格式从STATEMENT更改成ROW格式

需求 公司内部有几十套基于传统复制的MySQL主从实例,而且binlog的格式都是STATEMENT格式。在接手这些MySQL主从实例之后就有考虑过想将binlog格式更改成ROW格式。而这次则是因为我们elk上面一个第三方工具需要解析和监听binlog信息,并且只能解析ROW格式的binlog,借此机会正好将公司部分MySQL主从复制实例的binlog格式更改成ROW格式。 ROW和STATEM...

weixin_33982670的博客 1060

mysql基础面试必会_面试必备sql知识点——MySQL基础进阶

上期讲解了MySQL的一些基础知识(面试必备sql知识点——MySQL基础)本期继续深化知识点,基于基础,做进一步延伸。学习就是个不断反刍的过程,将碎片化的知识,搭建成完整的框架体系,才能够真正掌握。如果对你有帮助,建议点赞收藏!内容大纲:一、条件CASE表达式case 函数的格式为:case when 判断表达式 then 表达式 else 表达式 endelse 可省略,end不可省略。连续...

weixin_33316051的博客 307

as cast float server sql_面试必备sql知识点——MySQL基础进阶

上期讲解了MySQL的一些基础知识(面试必备sql知识点——MySQL基础)本期继续深化知识点,基于基础,做进一步延伸。学习就是个不断反刍的过程,将碎片化的知识,搭建成完整的框架体系,才能够真正掌握。如果对你有帮助,建议点赞收藏!内容大纲:一、条件CASE表达式case 函数的格式为:case when 判断表达式 then 表达式 else 表达式 endelse 可省略,end不可省略。连续...

weixin_32836671的博客 427

MySQL数据库(三)

CREATE TABLE Emp(id int,dept_id int,mgr_id int,name char(20),post char(20),salary float,start_time date,birth date); INSERT INTO Emp VALUES(2019003,1001,2019001,‘hehe’,‘P1’,5000,STR_TO_DATE(‘2019-9-16...

qq_45067278的博客 152

NIFI实战:MySQL增量同步到HDFS避坑指南(含日期字段处理技巧)

本文详细介绍了使用Apache NiFi实现MySQL到HDFS增量同步的实战技巧,重点解决日期字段处理、空值转换等常见问题。通过优化配置、多线程调优和异常处理方案,帮助开发者构建高性能、零丢失的数据同步流程,特别适合大数据生态中的数据仓库建设场景。

tcp8optimizer的博客 172

mysql之事务

最近有个需求,需要有两张表,必须要么一起成功,要么一起失败。这个时候,mysql的事务就有发挥的机会了。 事务实现起来,要么一起成功,要么一起失败。 我的操作是一张表更新状态,一张表插入一条数据,失败了需要回滚,成功了那就成功了。还有一个条件,更新的那张表大约有200万条数据,插入的那张表15万条数据。我需要得出在这种场景之下的mysql的插入性能统计。 第一件事模拟数据: 200万条数据...

466

MySQL数据库(四)

MySQL数据库(四)分组查询案例语法:特点:引入:查询每个部门的员工个数1.简单的分组案例1:查询每个工种的员工平均工资案例2:查询每个位置的部门个数2、可以实现分组前的筛选案例1:查询邮箱中包含a字符的 每个部门的最高工资案例2:查询有奖金的每个领导手下员工的平均工资3、分组后筛选案例:查询哪个部门的员工个数>5①查询每个部门的员工个数② 筛选刚才①结果案例2:每个工种有奖金的员工的最高工资>12000的工种编号和最高工资案例3:领导编号>102的每个领导手下的最低工资大于5000的领

yoonbongchi的博客 3096
上一篇: 带你认识设计模式的【策略模式】及优缺点
下一篇: 玩转MySQL之深入剖析整体架构
Java_LingFeng
博客等级 码龄4年 505粉丝 259原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值