00:00
好,第三类的话,咱们介绍的是日期函数,日期函数,那它的意思是指我们的参数的类型为日期类型,用于对日期处理的哈,啊,或者说来返回日期的,那么我们常见的日期函数呢,有这些,首先第一个呢,最最常用叫做now now的意思呢,现在对不对,它用于去返回当前系统日期啊,当然也外加时间,好我们试一下吧,Select no,那么现在呢,我们去看效果啊,好,出来了吧,是不是9月29号11:12:38啊,对吧?啊,它是返回的这样的一个日期哈,那么假如说我只想返回前面的日期,不想返回时间嘞,这个用到的是current date,它返回的是当前系统日期,注意不包含时间啊,C是不是current的那个前面。
01:00
边几个字母呀,一个缩写啊,你这样去记啊,好了,这个里边也没有参数,我们直接返回哈,啊出来了吧,啊是这样,而且呢,它还有一个函数可以可以去返回我们当前的时间,不包含日期,叫current time,那就是返回当前的时间啊,注意不包含日期,Select current time好了,那么现在再去执行是不是就行了啊,这些都是可以的哈,啊那么它还可以干嘛?其实还有很多,比方说我们还可以去获取指定的部分,指定的部分比如说呃年,比如说月,比如说日,小时,分钟,秒,哎,某一部分我们也可以获取,我们试几个哈,哎,我就在一起写了,要要是不是代表的年呀,但是这个里边的参数要需要放进一个什么。
02:00
怎么呢?呃,就是日期嘛,那一个日期,呃我们比方说现成的日期就是这个闹对不对?呃或者说你给他传递一个是不是带那个呃就是日期的这样的一个字段呀,呃日期类型的字段也行哈,那比方说这就是年,然我在这起个别,诶起个别名好了,那现在我们再去执行是不是当前时间2017年呀,啊或者说你在这跟他自己传入一个日期的这个常量值也行的,其实啊啊,比方说某一位同学的生日1998年1月1号啊,有1998年的吗?没有是吧?啊好,然后这个这不就出来了吗?对吧?再比如说我们员工表里边是不是有一个入职时间呀,入职时间的话呢,呃叫做he date,那咱们在这也可以是第,然后这儿呢,就写上一个那个,呃,是不是列名或者说字段名对不对,嗯,然后我们看是哪一年来的哈。
03:00
你用上字段了,是不是必须要加上服装母表呀,啊,然后再执行,是不是大都是1992年啊,对吧?啊,它这样的一个意思哈,行吧,这是年,除了年之外还可以有什么呢?来我们试一下哈,比如说我们还可以有月,那这个就是mass mass这个代表的是月,Math不就是月的意思嘛,没问题吧,现在的时间是九月,假如说我这个九呀,我想让它出现那个英文,人家也支持很强大的叫做man's name,哎,没有这个哈,Man's name,哎,看到了吧,啊就是月名对不对,然后呢,我们这呢,加上一个日期啊月,然后再去执行这个,这这这啥意思,September是不是就是那个九月份的英文啊,啊有的说老师这个九月份,因为我之前都没认识过,是不是?
04:00
好吧,这是关于他哈,啊,然后我就不继续往下说了,然后日的话应该是day对吧,小时应该是hour,分钟是minute,秒是second,是不是等会试一下就行了,嗯,那你这个英文要记住它哈,啊,行吧,这是关于它,呃,这个说完了之后呢,我们最后再去讲两个常见的日期函数,在这个地方比较用的多,第一个呢,叫做str two date s tr to date,它的意思是说将日期格式的字符转换成日期类型,你看它的名字很形象,是不是将一个字符转换成日期啊,相当于只不过这个字符你不能瞎写,你比如说我们把那个史泰龙转换成日期,那咋转是没法转呀,你是不是必须把一个合法的日期才能转呀?啊,就这个意思哈,那么他这呢,举了个例子看。
05:00
哎呀,那么意思是说你给它一个日期的值,然后按照这种格式去解析它,去解析它,然后最终返回一个日期类型,他这个意思,因为假如说你这么一写,人家serve的解析器,知道哪部分是年,哪部分是月吗?他不知道,所以你要告诉他这个就是格式,对,这就是个格式,那所以说大家肯定会去想说老师这个格式怎么写嘞,是不是用到了一些符号呀?啊那么好了,我们在这儿呢,我给大家统计了这样一张表啊,那来看,如果说呢,你代表的是年的话呢,我们用的是这种Y,有大写的,有小写的,大写的代表的是不是四位,四位的年份呀,比方你写个呃,这个一呃1999,这代表的是四位的,如果写个九九是不是就是两位的呀,就这个意思哈,M代表的是月份啊,这个M是不是就是那个M的那个首字母呀啊,这个M代表的月份啊,那么注意了,这。
06:00
这个代表的是,如果说是一到九月份的话,它是单位数,那前面是不是就会补零啊,啊是这个意思啊,然后还有呢,就是不补零的就是这个C啊,所以说三和四都是代表的月份,然后再看DD代表的是日期啊,就是一到30号或者一到31号啊,根据不同的月份来的,H呢,代表的是小时大H代表的是24小时至,也就是午夜,午夜21点的时候啊,那么它就是写的21,但是如果说用这种小H是不是它就写的是九啊,它是这个意思哈,I代表的是分钟秒的话,是s second second哈,行吧,那么我们知道这个了之后呢,我们可以再去试一下哈,那么看这这个叫做s tr to date,意思呢是将我们的呃字符转换成日期,注意是怎么转的,就是通过是不是。
07:00
指定的格式啊,指定的格式转换成日期,好吧,那么我们来试一下哈,呃,其实很简单,比方说我们来一个select的str two date,然后这个里边我给他个日期,我随便来一个1998年3月2号能看到吧?啊然后呢,我们这个里边的话给它加上一个格式,前面的是不是代表年呀啊年的话我就是百分号大位,对了,杠是不是人家这有个杠,你也加一个杠呀,好,然后这个三是不是代表的啊月份百分号C吧,对不对啊,因为C是不是代表单位数的这个月呀啊然后在杠是不是百分号D啊,日子的话只有一个是不是就是D呀?啊你只能这么写啊,最终呢,我们来一个输出output可以吧,我们看一下能不能行,这个效果上没什么对不对,效果上是不是还是它呀,所以你这么看是不是没啥感觉呀,最关键的。
08:00
是什么呢?对CC和D有变化,因为人家说了C是不是代表的是,呃,按说是没有零是吧,但是它这个最终的效,它这个格式只是说用它来去解析它对转换它,但默认的日期的值的样子,是不是人家是这么写的呀啊,它是这个意思啊,那我们举一个实际的场景吧,比方说我想查询出我先看一下我员工表的数据啊来瞪大眼睛看了哈,重点来了,呃,我们的这个雇佣的日期的话,入职的日期的话呢,它有的是1992年4月3号的能看到吧,比方说我就查这个哈,我想查询日这个入职日期,入职日期为1992年叫几月几号来着,4月3号的员工信息,员工信息好,那么假如说我要是这么查,其实是没问题的,Select的星号from。
09:00
呃,我我这呢,就直接employees表,然后where,我们的入职日期have date等于,哎,其实它可以直接用等于啊,然后你要是直接这么写,你发现可以,因为默认的日期格式呢,就是这么写,就是年在前,月在这儿,那个日在这能看到吧,这是默认的,那所以你会发现也能查出来啊,杠写错了是吧,这是杠四,这是杠三,好了,然后再去执行能查出来吧,哎,这个没问题,但是那么往往在实际的这个业务中的话呢,就是我们需要根据用户输入的这个值呢来进行筛选,比方在外部页面中,我们可以可能会要求用户呢,输入一个对应的一个日期,然后根据他输入的日期是不是进行这样的一个筛选呀,那么首先呢,我们用户输入的这个日期,它最终在后台返回的是一个什么类型呢?对。
10:00
是个字符串,这个应该知道吧,啊,在外部页面上输入一个东西,最终返回的是一个什么字符串,首先我拿到的字符串,另外呢,我们这块输入的这个格式是不一定的,它不一定是不是年在前,月在这,日在这是不一定这样啊,它有可能最终出来的效果是什么样子的呢?那我们试一下,也就是最终你有可能拿到的这个值长的是这个样子的,就是1992在后面去了,比方说1992能听懂吧,他有可能这样的,这是人家最终返回给你的一个日期值,我说明白了吧,好,那你要是拿着这个东西再去筛选的话,你会发现还能找到吗?找不到了,所以这个时候往往就需要我们是不是进行一个这个叫做转换呀,进行一个转换来看一下哈,那怎么转,那就是spr to date好了,然后呢,我们放进来第二个参数是不是告诉我们的解析器,诶这个代表的是。
11:00
啊,哎,就是我们的这个这个月百分号C吧,杠后面代表的是日子,然后最后代表的是年百分号万,哎,你用这个方式跟我解析前面的字符是不是这种意思呀,说明白了吧?啊,所以它是有具体的业务场景的哈,然后现在呢,我们再去执行出没出来是不是出来了,说明白了吧,这就是s tr to date啊好了,那么接下来呢,我们再去看最后一个日期函数,这个日期函数正好跟刚才的反过来,叫做date format,那么对了,格式日期它呢是说先是有一个日期类型的值,最终转换成什么呀字符,那么转换的这个效果呀,它是按照你的这个格式来的,比方说你给他一个日期,它最终是不是显示出这样的一个效果呀?啊,那么用到的这种符号跟我们刚才的表格中见到的是一样的,是不是也是遵循?
12:00
这个格式啊啊,遵循这个功能啊,好,那么我们试一下哈,比方说嗯,这个叫做data format对吧,将日期转换成符号,好,我们来一个select date forment,那前面呢,我们比方说放一个now,先做个简单的题,然后在这儿呢,我们来一个是百分号Y,我我这样吧,我试一下小Y可不可以啊可以吧,呃,然后呢,我这写上一个诶又奶奶去了年,然后再反分号月,那这个就是月哈,反分号M月,然后最后是反分号D日,看到吧,哎,然后最后呢,我们是output哈,行吧,那现在我们再去执行出没出来出来了吧,也就是按照我这种格式是不是去格式这个日期显示出来呀,这个也是有具体的场景的,比方说。
13:00
我们做上一道题,要去查询我们员工这样吧,有奖金的员工名和入职日期,入职怎么写来着,入职日期是吧?哦,不对,应该是入职,入职是吧,日期好了,哎,那么要求呢,我们入职日期的这个格式呢,是这么来写的啊,就是人家规定好了,比方说就是呃,月,某某月啊,然后再去斜杠啊,某某日,是不是有可能人家有一个自己的要求呀,对吧,然后最后呢,我们再来一个什么某某年能看明白吧,要求这样好吧,一起来说这个应该怎么去写,Select last name入职日期,对了,我要上来就加上data format好,这个里边就是写他的日期。
14:00
把he date,哎,然后我再跟它规定个格式,一起来说这个怎么写,把分号小Y吧按错了,呃,这个月的话应该是M对吧?斜杠百分号D对吧,在空格,呃,人家还有一个月呢,是不是还有月汉字你也得加上啊,这个就是日是吧?在空格后面加百分号小Y是不是?然后后面再去加年啊,好吧,然后这个就是入职日期啊,入职日期对吧?然后再from我们的1LOS表哈,Los,然后where,是不是还有一个条件呀,Commission pack is not now是不是就做出来了?哎,这是有具体的场景,我们现在再执行,大家看一下出没出来是不是就出来了啊,它这样的一个意思哈,好吧,那么到现在为止我们。
15:00
常见的日期函数也就说完了啊,提一下。
我来说两句