SQL中处理时间问题案例
1. 获取数据库中当前月份的相关数据
SELECT WorkerSortID, SUM(WorkerCount) AS WorkerMothCount
from WorkerRecord
WHERE (YEAR(WorkerTime) = YEAR({ fn NOW() })) AND (MONTH(WorkerTime)
= MONTH({ fn NOW() })) AND (WorkerCount > 0) AND (WorkerID = 'wy')
GROUP BY WorkerSortID
2. 获取数据库中的存在时间数据,时间格式为:1999-11
SELECT CONVERT(varchar(10), YEAR(WorkerTime)) + '-' + CONVERT(varchar(10),
MONTH(WorkerTime)) AS WorkTime
from WorkerRecord
GROUP BY CONVERT(varchar(10), YEAR(WorkerTime)) + '-' + CONVERT(varchar(10),
MONTH(WorkerTime))
3. 获取数据库中指定时间段的相关数据
SELECT WorkerSortID, SUM(WorkerCount) AS WorkerMothCount
from WorkerRecord
WHERE (WorkerCount > 0) AND (WorkerTime < CONVERT(varchar(30), '2008-12-31', 101)) AND (WorkerID = 'wy')
GROUP BY WorkerSortID
相关文档:
SQL RIGHT JOIN 关键字
SQL RIGHT JOIN 关键字
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
RIGHT JOIN 关键字语法
SELECT column_name(s)
from table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数 ......
存储过程
优点:
1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更复杂,StoredProcedure为封装此代码提供了一个替换位置。
2.执行计划(存储过程在首次运行时将被编译,这将产生一个执行计划-- 实际上是 Microsoft SQL Server为在存储过程中获取由 T-SQL 指定的结果而必须采取的步骤的记录 ......
一般地,日期格式说明符是不太敏感的。然而,当为了显示而说明日期格式、对于文本数据中的说明符等情况下,它就变得比较务实、具体了。以月份的名字为例,通过下面引用的结果解释一下该情况的效果:
TO_CHAR(SYSDATE,’MONTH’)=NOVEMBER
TO_CHAR(SYSDATE,’Month’)=November
TO_CHAR(SYSDATE,&rsq ......
Cross Apply使表可以和表值函数结果进行join,在下面的示例中建了两个表和一个表值函数,T_b的列a_ids中会存放a表的id用,分割的字符串连接;我们通过cross apply使T_a,T_b表通过splitIDs inner join 连接。请看示例:GO
if object_id('T_a','U') is not null
drop table T_a
GO
CREATE TABLE T_a( ......
在本文中,GetDate()获得的日期由两部分组成,分别是今天的日期和当时的时间:Select GetDate() 用DateName()就可以获得相应的年、月、日,然后再把它们连接起来就可以了:
Select Datename(year,GetDate())+'-'+Datename(month,GetDate())+'-'+Dat ......