首页
归档
关于
友情链接
Search
1
clash for windows允许局域网连接,TAP和TUN模式
98,252 阅读
2
使用emby打造个人影视媒体库
21,269 阅读
3
解决kodi的emby插件无法找到文件...相对路径、绝对路径问题
10,398 阅读
4
Ubuntu to go/Linux to go/将linux系统安装到u盘或移动硬盘
8,067 阅读
5
魔改版rclone挂载世纪互联onedrive
4,979 阅读
技术
软件
文章
其他
登录
Search
标签搜索
sql
代理
sqlserver
vps
onedrive
软件
Oracle
magisk
onelist
世纪互联rclone
世界x流大学.com
transmission
Transmission Remote GUI
pt
ftp
emby插件
emby for kodi插件
qBittorrent
emby
nfo
旁逸斜出
累计撰写
35
篇文章
累计收到
130
条评论
首页
栏目
技术
软件
文章
其他
页面
归档
关于
友情链接
搜索到
4
篇与
sql
的结果
2021-12-26
Mssql数据库日期格式处理
基本格式系统时间 select GETDATE(); 格式转换字符串转日期select convert(datetime,'2021-02-27 15:52:15') --2021-02-27 15:52:15.000 select convert(datetime,'2021-02-27 15:52:15',20) --2021-02-27 15:52:15.000 select convert(datetime,'2021/02/27 15:52:15',111) --2021-02-27 15:52:15.000 select convert(datetime,'2020',20) --2020-01-01 00:00:00.000日期转字符串select CONVERT(VARCHAR(20),GETDATE(),120) --12 26 2021 6:47PM select CONVERT(VARCHAR(20),GETDATE()) --2021-12-26 18:47:46 select CONVERT(VARCHAR(32),GETDATE(),111) --2021/12/26CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。{collapse}{collapse-item label="style值对应的格式" open}参考:https://www.w3school.com.cn/sql/func_convert.asp Style ID Style 格式100 或者 0 mon dd yyyy hh:miAM (或者 PM)101 mm/dd/yy102 yy.mm.dd103 dd/mm/yy104 dd.mm.yy105 dd-mm-yy106 dd mon yy107 Mon dd, yy108 hh:mm:ss109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)110 mm-dd-yy111 yy/mm/dd112 yymmdd113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)114 hh:mi:ss:mmm(24h)120 或者 20 yyyy-mm-dd hh:mi:ss(24h)121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)130 dd mon yyyy hh:mi:ss:mmmAM131 dd/mm/yy hh:mi:ss:mmmAM{/collapse-item}{/collapse}其他计算命令计算本年天数 select datediff(d,t.curr_year,dateadd(yy,1,t.curr_year)) from (select dateadd(d,-datepart(dy,getdate())+1,getdate()) curr_year) t select datediff(d,t.curr_year,dateadd(yy,1,t.curr_year)) from (select dateadd(d,-datepart(dy,convert(datetime,'2020',20))+1,convert(datetime,'2020',20)) curr_year) t 也可以用下面判断闰年的方法返回天数 DATEDIFF() 函数返回两个日期之间的时间 DATEADD() 函数在日期中添加或减去指定的时间间隔 DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等判断闰年 select case when(YEAR(GETDATE())%4=0 and YEAR(GETDATE())%100<>0 or YEAR(GETDATE())%400=0) then '闰年' else '平年' end某月的第一天,最后一天 select dateadd(m, datediff(m,0,getdate()),0) select dateadd(day ,-1, dateadd(m, datediff(m,0,getdate())+1,0)) 附: Oracle日期转换
2021年12月26日
195 阅读
1 评论
0 点赞
2021-08-17
Sqlserver中0和空字符串相等的问题
今天在SQL server中写存储过程时遇到一种0和空字符串相等的问题。场景:表A有value1(varchar)和value2(int)两个字段,现在插入一条新的数据(v1,v2),如果v1已存在,则给value2加上v2,若v1不存在则插入新的(v1,v2)(这个逻辑用merge into会更好些)开始我是这么写的declare @flag=int select @flag=value2 from A where A.value1=v1 if(@flag='') insert into ... else update A...但是这样是有问题的,当查询不到这条数据时,确实会插入,但是当value2=0的时候,这么写它依然会执行insert,也就是0='',可以通过下面的存储过程验证一下:CREATE PROCEDURE TEST AS BEGIN declare @a int declare @b varchar set @a=0 set @b=0 if(@a='') print('int a') if(@b='') print('varchar b') END GO然后执行会发现输出为 int a ,原因在于varchar和int是存在隐式转换的,导致转换之后0和空字符串变成了相等的。参考:https://www.cnblogs.com/liubaolongcool/archive/2011/08/24/2152552.html
2021年08月17日
178 阅读
0 评论
0 点赞
2021-02-27
Oracle数据库日期格式处理,计算年龄
基本格式系统时间 SELECT sysdate FROM dual; 格式转换字符串转日期SELECT to_date('2021/2/27 15:52:15', 'YYYY-MM-DD HH24:MI:SS') from dual; --2021/2/27 15:52:15 SELECT to_date('2021-02-27 15:52:15', 'YYYY-MM-DD HH24:MI:SS') from dual; --2021/2/27 15:52:15 SELECT to_date('2021-02', 'YYYY-MM') from dual; --2021/2/1 SELECT to_date('2021', 'YYYY') from dual; --2021/2/1如果省略HH、MI和SS对应的输入参数时,Oracle使用0作为DEFAULT值。 如果输入的日期数据忽略时间部分,Oracle会将时、分、秒部分都置为0,也就是说会取整到日。 同样,忽略了DD参数,Oracle会采用1作为日的默认值,也就是说会取整到月(2021/2/1)。 但是,不要被这种“惯性”所迷惑,如果忽略MM参数,Oracle并不会取整到年(2021/1/1),而是取整到系统当前月日期转字符串SELECT to_char(sysdate,'yyyy-mm-dd') FROM dual; --2021-02-27 SELECT to_char(sysdate,'dd-mm-yyyy') FROM dual; --27-02-2021其他计算命令计算本年天数 SELECT add_months(trunc(sysdate,'yyyy'),12)-trunc(sysdate,'yyyy') FROM dual; 1.oracle的时间差是以天数为单位的 2.add_months函数有两个参数,第一个参数是日期,第二个参数是对日期进行加减的数字(以月为单位的) 3.trunc函数,可以截取日期,也可以截取数字 TRUNC(date[,fmt]) 其中: date 一个日期值;fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去 下面是该函数的使用情况: trunc(sysdate,'yyyy') --返回当年第一天. trunc(sysdate,'mm') --返回当月第一天. trunc(sysdate,'d') --返回当前星期的第一天.判断闰年,LAST_DAY函数返回指定日期对应月份的最后一天 SELECT to_char(last_day(to_date(2020 || '02', 'yyyymm')), 'dd') FROM dual --29则为闰年某月的第一天,最后一天 SELECT trunc(sysdate,'mm'),last_day(trunc(sysdate,'mm')) FROM dual;前一个月最后一天 SELECT trunc(to_date('20210131','yyyy-mm-dd'),'mm')-1 FROM dual; SELECT to_date(substr('20210131',1,6),'yyyy-mm')-1 FROM dual;计算某个人的年龄 SELECT trunc(months_between(sysdate,to_date('19980401','yyyymmdd'))/12) FROM dual; SELECT floor(months_between(sysdate,to_date('19980401','yyyymmdd'))/12) FROM dual; MONTHS_BETWEEN函数返回两个日期之间的月份数。 格式:MONTHS_BETWEEN(DATE1,DATE2) trunc函数在截取数字时,不对指定小数前或后的部分做相应舍入选择处理。 TRUNC(number[,decimals]) 其中: number 做截取处理的数值 decimals 指明需保留小数点后面的位数。忽略它则截去所有的小数部分。 例: SELECT trunc(123.123,1) FROM dual; --123.1 SELECT trunc(123.123) FROM dual; --123 SELECT trunc(123.123,-1) FROM dual; --120 SELECT trunc(123.123,-2) FROM dual; --100 SELECT trunc(123.123,-3) FROM dual; --0 floor函数,对应的有ceil函数 ceil(n) 取大于等于数值n的最小整数 floor(n)取小于等于数值n的最大整数附: Sqlserver日期格式处理
2021年02月27日
622 阅读
0 评论
0 点赞
2020-07-23
Oracle Live SQL——SQL在线练习平台
以前学习数据库时装的Microsoft SQL Server,装起来很麻烦。最近发现了Oracle的SQL在线学习平台,单就学习数据库而言非常方便。网址:https://livesql.oracle.com/点击Sign In登录Oracle账号,没有的话就注册一个。如果不想自己写语言新建数据库,在Code Library 里面有别人上传的脚本,选一个直接Run Script,然后就可以在SQL Worksheet写SQL语句练习起来了。除此之外,你还可以管理和分享自己写的脚本等。
2020年07月23日
2,111 阅读
0 评论
1 点赞