我们都知道SQL语言虽然有统一的标准,但是每家数据库在支持的函数和使用细节上面又各有差异,本文主要从MS SQLServer的SQL语句入手,讲解在实际使用过程中遇到的问题。
一、SQL Server SQL语句
-
查询数据库中是否存在带某些关键字段的表。
SELECT table_name FROM information_schema.tables WHERE table_schema = ‘dbo’ AND table_name LIKE ‘%pay%’
-
日期;日期相关功能是最常见也是最复杂的功能,接下来我们从日期的常见几种情形出发去认识和理解SQL Server SQL的功能。
1.1 选取早于或晚于某个日期的数据。SELECT t3.new_orderdate
FROM new_ord_saleorder AS t3
WHERE t3.new_orderdate>‘20190525’; --比较的日期必须是’yyyymmdd’格式。1.2 统计某年,季,月,周,日等区间数据。
需要用到两个函数:时间差函数 DATEDIFF(datepart, startdate,enddate)、当前日期函数GETDATE()。SELECT * FROM tablename where DATEDIFF(day,inputdate,GETDATE())=0 – 当天
SELECT * FROM tablename where datediff(week,inputdate,getdate())=0 – 当周
SELECT * FROM tablename where DATEDIFF(month,inputdate,GETDATE())=1 – 上个月
这里需要解释一下的是,通过这种方式取到的数据并不是从今天开始往前推一周,一月,而是按照周或者月份重新计算的周、月,比如今天是5月28日,上个月是指4月1日~4月30之间的数据,周也类似,是从周一开始计算的。 -
根据SQL日期字段获取年、月、日,主要用到DATEPART()函数,datepart取值范围year | quarter | month | week | day | hour | minute | second | millisecond等。
-
DATEPART函数和DATENAME函数的异同。
4.1 datepart():返回代表指定日期的指定日期部分的整数。
语法:Datepart(datepart,date) 返回类型:int
4.2 DateName():返回代表指定日期的指定日期部分的字符串
语法:DateName(datepart,date) 返回类型:nvarchar
参考文献
1.【转】Sql Server中查询今天、昨天、本周、上周、本月、上月数据
2.sql中如何提取从数据库中所获得时间的年份