MSSQL编程:怎样取得当月的天数?
Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用--办法一DECLARE@monthint,@yearint
SELECT@month=6,@year=2004
SELECTDATEPART(dd,DATEADD(m,1,CAST(STR(@month)+/01/+STR(@year)as
datetime))-1)
--办法二
DECLARE@DATEDATETIME
SET@DATE=GETDATE()
SELECTCAST(
--Firstdayofnextmonth
DATEADD(MONTH,DATEDIFF(MONTH,0,@DATE)+1,0)
-
--Firstdayofcurrentmonth
DATEADD(MONTH,DATEDIFF(MONTH,0,@DATE),0)
ASINT)
--办法三
这个你也能够写一个UDF来完成:
createfunctionfn_NumOfDaysInMon(@datedatetime)
returnsint
as
begin
declare@begmonthdatetime,@endmonthdatetime,@daysint
select@begmonth=dateadd(month,datediff(month,0,@date),0)
select@endmonth=dateadd(dd,-datepart(dd,@date),dateadd(mm,1,@date))
select@days=datediff(dd,@begmonth,@endmonth)+1
return@days
end
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。 varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。 如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。 其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?! 财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的.. 是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。 SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。) 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。 大侠们有推荐的书籍和学习方法写下吧。
页:
[1]