文档详情

access与SqlServer 之时间与日期及其它SQL语句比较.docx

发布:2024-04-26约4.93千字共4页下载文档
文本预览下载声明

-1、Datediff:

算出日期差:

1.access: datediff(d,fixdate,getdate())2.sqlserver: datediff(day,fixdate,getdate())ACCESS实例: select*fromtablewheredata=datediff(d,fixdate,getdate())

sqlserver实例:select*fromtablewhere

data=datediff(day,fixdate,getdate())

算出时间差:

1.access: datediff(h,fixdate,getdate())2.sqlserver: datediff(Hour,2004-12-10,getdate())ACCESS实例: selectDATEDIFF(h,HMD,getdate())

sqlserver实例:selectdatediff(Hour,2004-12-10,getdate())

算出月份差:

1.access: datediff(m,fixdate,getdate())2.sqlserver: datediff(Month,2004-12-10,getdate())ACCESS实例: selectDATEDIFF(m,HMD,getdate())

sqlserver实例:selectdatediff(Month,2004-12-10,getdate())

2、日期变量

1.access: #data#2.sqlserver: data

ACCESS实例: select*fromtablewheredata=#data#

sqlserver实例:select*fromtablewheredata=data

3、是否

1.access: notfinished2.sqlserver: finished=0

ACCESS实例: select*fromtablewherenotfinishedsqlserver实例:select*fromtablewherefinished=0

4、求余数

access: amodb=1002.sqlserver: a%b=100

ACCESS实例: select amodb=100fromtablewherenotfinished

sqlserver实例:selecta%b=100fromtablewherefinished=0

5、获取当天日期1.access: now()

sqlserver: getdate()

ACCESS实例: select now()sqlserver实例:selectgetdate()

数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。

所有的默认值都丢失了。主要是数字类型和日期类型。所有now(),time(),date()要改成getdate()。

所有datediff(d,time1,time2)要改成datediff(day,time1,time2)

有可能一些true/false类型不能使用,要变为1/0。备注类型要通过cast(columnasvarchar)来使用。

CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。

isnull(rowname)要改成rowname=null

ACCESS的数据库中的自动编号类型在转化时,sqlserver并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!

转化时,跟日期有关的字段,SQLSERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。有时用smalldatetime型时,转化失败,而用datetime型时,转化成功。

对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:delete*fromuserwhereid=10,而对SQLSERVER数据库进行删除是用:deleteuserwhereid=10.

日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQLSERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time(

显示全部
相似文档