Date基本上是所有数据处理软件都会涉及到的一个版块,而且也是最贴近业务的一类数据类型。
(本贴是从网上找了几个比较好的帖子总合了一下并做了一下修改) 下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。 日期部分 缩写 year yy, yyyy quarter qq, q Month mm, m dayofyear dy, y Day dd, d Week wk, ww Hour hh minute mi, n second ss, s millisecond ms SELECT DATEPART(dy, @DATE) AS DayOfY
本文转载:http://www.cnblogs.com/ethan-qi/archive/2013/05/14/3077371.html
–以2013-12-10 12:56:55为例 –print convert(nvarchar(10),getdate(),120) => 2013-12-10
2、dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值,例如:向日期加上2天
转自:https://www.cnblogs.com/kuangwong/p/9333774.html
datediff(day,createdate,GetDate())=0 -- 判断是否当天,createdate为日期字段 -- ╔════════════════════╗ -- ====================================================
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO –**分类报表存储过程 ALTER proc gnfl_proc as declare @p_phone varchar(30), @p_sex int, @p_age int, @p_city varchar(50), @p_r_type int, @p_r_time datetime, @v_ping int, –PING码上行总计 @v_ping_ejj int, –PING码上行其中EJJ用户数 @v_ping_bjj int, –PING码上行其中BJJ用户数 @v_ping_con int, –PING码上行中注册和未注册的用户(consumer)不含发送EJJ/BJJ用户 @v_ping_reg int, –发送PING码并注册的用户(含不在同一天注册的用户) @v_ping_reg_ejj int, –发送PING码并注册且发送过EJJ的用户 @v_ping_reg_bjj int, –发送PING码并注册且发关过BJJ的用户 @v_ping_reg_con int, –发送PING码注册的用户(consumer)不含发送过EJJ/BJJ的用户 @v_ping_noreg int, –发送PING码未注册的用户 @v_ping_noreg_ejj int, –发送PING码未注册而且发送了EJJ的用户 @v_ping_noreg_bjj int, –发送PING码未注册而且发送了BJJ的用户 @v_ping_noreg_con int, –发送PING码未注册也示发送EJJ/BJJ的用户(consumer)] @v_man int, –男性 @v_women int, –女性 @v_age20 int, –年龄在20岁以下 @v_age29 int, –年龄在20~29岁 @v_age39 int, –年龄在29~39岁 @v_age49 int, –年龄在39~49岁 @v_age50 int, –年龄在49岁以上 @v_citysh int, –上海 @v_citybj int, –北京 @v_cityhz int, –杭州 @v_citygz int, –广州 @v_citysz int, –深圳 @v_cityqt int, –其他城市 @v_ejj_user int, –EJJ用户 1 @v_bjj_user int, –BJJ用户 2 @v_coun int –写入临时表的判断条件 select –统计男 @v_man=count( case when usersex=’1′ then 1 else null end ), –统计女 @v_women=count( case when usersex=’2′ then 1 else null end ), –统计20岁 @v_age20=count(case when userAge< 20 then 1 else null end ) , –统计29岁 @v_age29=count(case when userAge< 30 and userAge>19 then 1 else null end ), –统计39岁 @v_age39=count(case when userAge < 40 and userAge>29 then 1 else null end), –统计49岁 @v_age49=count(case when userAge < 50 and userAge>39 then 1 else null end), –统计50岁 @v_age50=count(case when userAge >49 then 1 else null end), –统计上海用户 @v_citysh=count(case when ci
1 --dateadd 将制定的数值添加到指定的日期部分后的日期 select dateadd(mm,4,'01/01/99') 2 -- 返回:以当前的日期格式返回05/01/99 3 4 --datediff 二个日期之间的指定日期部分的区别 select datediff(mm,'01/01/99','05/01/99') 5 --返回:4 6 7 --datename 日期中指定日期部分的字符串形式 select datename(dw,'01/01/2000')
--1. 当前系统日期、时间 select getdate() --2015-01-06 09:27:27.277 --2.时间操作 dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 dateadd(datepart,number,date) 注: datepart : year(yy, yyyy) | quarter(qq,q) | month(mm,m) | week(ww,wk) | day(dd,dy) | hour(h) | mi
-- 本月的第一天 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) -- 本月的最后一天 SELECT DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) -- 上个月的第一天 SELECT DATEADD(m,-1, DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) -- 上个月的最后一天 SELECT DATEADD(ms,-3,DATEADD(m
SQL语句来查询今天、昨天、7天内、30天的数据! 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1 7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7 30天内的所有数据:select
考勤统计中,一般都需要考虑到节假日信息和调休的日期,每年12月份国家会颁布新一年的节假日信息,我们可根据节假日信息,维护成相关的日期表,用于日期维护。本文介绍下相关实现方式。 日期表的创建如下:
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接、外连接 你真的会玩SQL吗?三范式、数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节点的方法 你真的会玩SQL吗?让人晕头转向的三值逻辑 你真的会玩SQL吗?EXISTS和IN之间的区别 你真的会玩SQL吗?无处不在的子查询 你真的会玩SQL吗?Case也疯狂 你真的会玩SQL吗?表表达式,排名函数 你真的会玩SQL吗?简单的 数据修改 你真的会玩SQL吗?你所不知道的 数据聚合 你真的会玩S
注:周节点是根据中国习惯,视周一为起,周日为末。 /*--------------------------------- 函数:获取某日期的特定起止日期v0.02 Author:AhDung Update:201607251729。无论@@datefirst为何值,均不影响周节点 ---------------------------------*/ ALTER FUNCTION dbo.FGetSpecialDate_ahdung(@date DATE, @SpcDate VARCHAR(20)) RE
实现原理:先利用DATEDIFF取得当前月的第一天,再将月份加一取得下月第一天,然后减去1分钟,再取日期的
Select CONVERT(varchar(100), GETDATE(), 0): 05 20 2021 3:47PM Select CONVERT(varchar(100), GETDATE(), 1): 05/20/21 Select CONVERT(varchar(100), GETDATE(), 2): 21.05.20 Select CONVERT(varchar(100), GETDATE(), 3): 20/05/21 Select CONVERT(varchar(100), GETDATE(), 4): 20.05.21 Select CONVERT(varchar(100), GETDATE(), 5): 20-05-21 Select CONVERT(varchar(100), GETDATE(), 6): 20 05 21 Select CONVERT(varchar(100), GETDATE(), 7): 05 20, 21 Select CONVERT(varchar(100), GETDATE(), 8): 15:47:31 Select CONVERT(varchar(100), GETDATE(), 9): 05 20 2021 3:47:31:410PM Select CONVERT(varchar(100), GETDATE(), 10): 05-20-21 Select CONVERT(varchar(100), GETDATE(), 11): 21/05/20 Select CONVERT(varchar(100), GETDATE(), 12): 210520 Select CONVERT(varchar(100), GETDATE(), 13):20 05 2021 15:47:31:410 Select CONVERT(varchar(100), GETDATE(), 14): 15:47:31:410 Select CONVERT(varchar(100), GETDATE(), 20):2006-05-16 10:57:47 Select CONVERT(varchar(100), GETDATE(), 21):2021-05-20 15:47:31.410 Select CONVERT(varchar(100), GETDATE(), 22): 05/20/21 3:47:31 PM Select CONVERT(varchar(100), GETDATE(), 23): 2021-05-20 Select CONVERT(varchar(100), GETDATE(), 24): 15:47:31 Select CONVERT(varchar(100), GETDATE(), 25): 2021-05-20 15:47:31.410 Select CONVERT(varchar(100), GETDATE(), 100): 05 20 2021 3:47PM Select CONVERT(varchar(100), GETDATE(), 101): 05/20/2021 Select CONVERT(varchar(100), GETDATE(), 102): 2021.05.20 Select CONVERT(varchar(100), GETDATE(), 103): 20/05/2021 Select CONVERT(varchar(100), GETDATE(), 104): 20.05.2021 Select CONVERT(varchar(100), GETDATE(), 105):20-05-2021 Select CONVERT(varchar(100), GETDATE(), 106):20 05 2021 Select CONVERT(varchar(100), GETDATE(), 107): 05 20, 2021 Select CONVERT(varchar(100), GETDATE(), 108): 15:47:31 Select CONVERT(varchar(100), GETDATE(), 109): 05 20 2021 3:47:31:410PM Select CONVERT(varchar(100), GETDATE(), 110): 05-20-2021 Select CONVERT(varchar(100), GETDATE(), 111): 2021/05/20 Select CONVERT(varchar(100), GETDATE(), 112): 20210520 Select CONVERT(varchar(100), GETDATE(),
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
/********************************************** 时间戳转换(秒) **********************************************/ --普通时间转换为时间戳(秒) SELECT DATEDIFF(SS,'1970-1-1 00:00:00',GETUTCDATE()) --毫秒时间戳转普通时间(秒) SELECT DATEADD(SS,1447842393,'1970-1-1 08:00:00') /***********
最近实习项目中需要用到sqlserver数据库,于是安装了之后使用了一下,觉得基本的sql语句是差不多的,区别就是给的函数不一样。
create proc dbbf_test as declare @dbname varchar(20), @cmd1 nvarchar(120), @cmd2 varchar(120), @cmd3 varchar(120), @i int, @filename varchar(80), @path varchar(80) set @dbname='TEST'--\\这是数据库名,使用时只需要把它改成你所要备份的数据库名即可,这个必须修改\\-- ----删除当前日期前15-前10天内的数据库备份,可根需要自行修改----
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
之前我们简单的了解了增、删、改、查这几类T-SQL语法来操纵数据表,但是为了更方便快捷地完成大量任务,SQL Server 提供了一些内部函数,可以和SQL Server 的SELECT语句来联合使用,进行类型转换、日期处理、数学计算、实现系统功能。
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文 章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。
达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM,它具有如下特点:
最近碰到个SQL Server跑SQL的性能问题,同样是关系型数据库,因此在原理层面,不同数据库之间有些内容是可以借鉴的,但是SQL Server一些细节上和操作层面,略有不同,需要熟悉和积累。
由于项目上的需要,把项目实现国产化,把底层的MySQL数据库替换为国产的达梦数据库,花了一周的时间研究了国产的数据库-达梦数据库,它和MySQL有一定的区别,SQL的写法也有一些区别。
在任何的数据库系统中,大部分都会有一个需求,数据归档,业务数据库不应该是永无止境的进行数据存取的目的地。业务数据库主要的功能是满足业务的保留数据的需求,以及相关保证性能等目的。如果留存的数据业务已经不再需要,并且已经影响了性能,则归档是必须要做的一件事情。
微软官方或者一些SQL Server论坛提供了使用SQL XML解析扩展事件的脚本,如代码清单1所示。
SQL Server中使用扩展事件捕捉所需的信息后,可以选择存放的位置。比如说内存或文件中,但无论存在哪里,其本质都是一个大XML。因此在SQL Server中读取该XML就是解析扩展事件结果的方式。 微软官方或者一些SQL Server论坛提供了使用SQL XML解析扩展事件的脚本,如代码清单1所示。 1: WITH events_cte 2: AS ( SELECT DATEADD(mi, 3:
今天给大家分享自己在工作当中用到的SQLServer一些常用的脚本,希望能对大家有所帮助!
我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:
--数据库备份压缩拷贝实例:前提要安装RAR压缩软件 --声明变量 declare @day varchar(10),@dbname varchar(20),@filename varchar(100),@cmd_str varchar(500),@local_name varchar(500) --初始变量值 set @day = convert(varchar(10),getdate(),112) set @dbname='database' set @filename=@dbname+@day set @local_name='y:\backup\database\'+@filename --sql备份 backup database database to disk=@local_name with init --删除备份 set @cmd_str='del y:\backup\database\'+@dbname + convert(varchar(10),DATEADD(DAY,-2,getdate()),112) EXEC master..xp_cmdshell @cmd_str --删除RAR set @cmd_str='del y:\backup\database\'+@dbname+'.rar' EXEC master..xp_cmdshell @cmd_str
SQL Server发展至今,关于日期的格式的控制方法,有传统的方法,好比CONVERT(),也有比较便利的新方法,好比FORMAT();一样,关于日期的操做函数,也分为传统方法:DATEADD()等,也有便利的新方法:EOMonth()等。sql
在 Power BI 的 度量值 的表达方面,BI 佐罗 提出了定语后置命名法,如下:
1 /* 2 3 4 2006年10月01日 5 6 SQL Server 数据库的基本操作 7 (1) 数据库的创建 8 (2) 数据表的创建以及相关约束的指定(含临时表) 9 (3) 数据的添/删/改 10 (4) 数据的查询 11 12 */ 13 14 (0)创建数据库 15 -- 指定数据库名称 16 -- (注:如果数据库名中包含空格可以使用[]将其标示) 17 create database [Super WC] 18 -- 关于
在当今这个多种不同数据库混用,各种不同语言不同框架融合的年代(一切为了降低成本并高效的提供服务),知识点多如牛毛。虽然大部分SQL脚本可以使用标准SQL来写,但在实际中,效率就是一切,因而每种不同厂商的SQL新特性有时还是会用到,这部分内容更是让人抓瞎,常常会由于一些很简单的问题花很久来搜索准确答案。赶脚俺弱小的智力已经完全无法记清楚常见的命令了,即使是用的最熟悉的T-SQL(SQL Server)。因此将最常见的T-SQL操作做个简单的总结,包括一些容易忽视的知识点和常见的开发样例。实话实说,现在开发中较
sql server 每次在备份的时候都会把相关信息记录到msdb库下面的表里面,为了更直观的查看备份的情况,我们可以在grafana上配置相关图表进行展示。
1 /* 2 3 4 2006年10月01日 5 6 SQL Server 数据库的高级操作 7 (1) 批处理 8 (2) 变量 9 (3) 逻辑控制 10 (4) 视图 11 (5) 函数 12 (6) 高级查询 13 14 */ 15 16 (1)批处理 17 将多条SQL语句作为一个整体去编译,生成一个执行计划,然后,执行! 18 理解批处理的关键在于"编译",对于由多条语句组成的一个批处理, 1
单纯讲解时间智能函数犹如盲人摸象,不见全貌,更不见本质。 我们之前写过很多关于时间智能函数的文章,但文本将是最为本质以及最重要的。本文属于 BI佐罗 PowerBI VIP 线下培训部分抽取。
1.绝对值 SQL:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual 3.取整(小) S:select floor(-1.001) value O:select floor(-1.001) value from dual 4.取整(截取) S:sel
2 定义变量给变量赋值 declare @myval int; set @myval = 10; set @myval1 = @myval2*12; --下面语句是在查询中赋值变量 select @myval = max(id)+1 form mytable
插入 insert [into] 表名 [(列名列表)] values (值列表)
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
DATEADD函数属于使用频率非常高的基本函数之一。国内各个类型、各个规模的企业,都无法绕开同比环比问题。对于上下文理解很吃力的小伙伴,使用DATEADD函数不失为一种过渡的手段。
下面,列出一些实用的表达式: 1,路径取文件名 1 RIGHT([FilePath],FINDSTRING(REVERSE([FilePath]),"\\",1) - 1) 2 RIGHT(@[U
DATEADD(datepart,number,date) date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
领取专属 10元无门槛券
手把手带您无忧上云