sql="select sum(cdbl(zfkuan) as zgd from zhi_rui_e_Word where cid="&fk&""
cdbl就是将文本转数字的,如果你里边是整数,可以把cdbl换成int,这样就能sum了
sql语句我不知道怎么实现,我认为可以通过asp、net之类的实现,思路如下:
遍历所有的字符,然后将获取每个字符的asc码,将不是数字的替换为空(数字的asc范围应该是48-57,包含上下限,即0的asc为48,9的asc为57)
例如“横16”,遍历产生会循环三次,产生的asc分别是 -17695,49,54,判断当大于57或者小于48时,字符为空,然后合并所有的字符,最后数值类型转换即可!
是Excel导入到Access里吧一般是往Access的数字字段导数据容易出现类型转换错误
单元格虽然设置成文本了,但仅是格式而已,本质仍是数字,
找1个类型转换错误的行试一下:双击单元格进入编辑状态,再退出,然后再导入1次,看看此行还有错吗
可以用函数转换:
数字转文本:=left(A1,100)
文本转数字:=A1+0
向下复制公式,然后复制、选择性粘帖为数值即可
VB对于字符串的运用已经非常好了。
那么关于ACCESS的运用如下解释:
1:字符串转换日期格式
A类:CDATE函数转换,将字符串直接转换成日期。
例子:Print Cdate("1/1/2017")
结果:2017-01-01
B类:FORMAT函数转换
dim S as string
S="2017-1-1"
S="1/1/2017"
等等S类型,但是起码保证S字符串是日期响应内容,比如S="贰零壹柒年三月一日"看起来是日期,其实并非日期所需的字符串内容
例子:Print Format(s,"YYYY-MM-DD")
后面的YYYY是年,YY是二位数的年,MM是二位数的月,一个M是不带0开头的月,DD同理。返回一个日期格式字符串。
------------------------------------------------------------
上诉是日期转换类,比较省事的是CDATE,比较自定义的是FORMAT,以比较另类的YEAR()函数+MONTH()函数=DAY()函数去获取字符串的对应年份,月份,日期。
下面说日期格式对比,加减等等。
A:DateADD("类1",类2,“日期格式”)
解释:类1=M就是计算月,D是日,Y是年。
类2,是一个数字,整形数字,不能有小数点,可以是正负。
日期格式,这个不用怎么解释了。
例子:Dateadd("m",1,"2017-01-01"),Dateadd("m",-1,"2017-01-01")
结果:2017-02-01 2016-12-01
解释:在2017-01-01的日期上,增加(1)个(m)月,第二个是增加(-1)个月,或者说是减少一个月。
M可是换成Y,成为减少年,换成D,减少天数。
B:DateDiff (interval, Date1 , Date2)
interval={Y,Q,M,D,W,H,N,S}
分别是年,季度,月,日,星期,小时,分,秒等等。
例子:DateDiff("m","2016-01-01","2017-01-01")
结果:12个月,换成其他的,比如d=366天,比如h=8784小时,比如s=31622400秒
总结:
Cdate,Format 函数用来转换字符串到日期格式。
Year(),Month(),Day()获取字符串中的年份,月份,日
DadeAdd()将目标日期,增加或者减少指定数值的年月日等。
DateDiff()获取二个日期之间的时间差,而时间差根据指定参数获得。
其中Format("2017-1-1","aaaa")这个函数比较奇妙,结果是获取当前日期的星期,比如结果是星期一这样的中文结果,当然,这是因为我们的地区设置是中国,若是外国可能返回英语啊德语啊什么的。
不知道是否满足你的需求呢?若不能或者本人对命题理解错误,请回复我。
由于SQL2000里面没有"自动编号",所以你的以"自动编号"设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的"标示"选择"是",种子为"1",增量为"1",
2,另外,ACCESS2000转换成SQL2000后,原来属性为"是/否"的字段将被转换成非空的"bit",这时候你必须修改成自己想要的属性了;
ACCESS转SQL
SERVER中的一些经验
1ACCESS的数据库中的自动编号类型在转化时,sql
server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
2转化时,跟日期有关的字段,SQL
SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
3对此两种数据库进行 *** 作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:"delete
from
user
where
id=10",而对SQL
SERVER数据库进行删除是用:"delete
user
where
id=10"
4日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对
SQL
SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
5在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL
SERVER数据库处理中,却不能用。
1、必须先安装Microsoft
Office
Access
2003,和SQL
Server2000。2、把旧的动网数据库备份,备份完成后,用Access
2003打开动网旧数据库,在打开时会出现一个警告,不要理会它(安全警告),按打开键,打开后按工具栏——数据库实用工具——转换数据库——转换为2002-2003格式,把数据库转换成2003格式。
2、转换完成后再用Access
2003打开,打开后按工具栏——数据库实用工具——升迁向导——新建数据库——填写SQL数据库登陆名称、密码和要新建的动网数据库(准备转成新的动网数据库),按下一步,按“
》”键,再按下一步,选取所有选项,再按下一步,选择“不对应用程序作任何改动”,再按完成。
3、打开SQL企业管理器——数据库吹礁詹判陆ǖ亩菘饬税桑慊髡飧鍪菘庖幌拢缓笤诠ぞ呃浮/FONT>SQL脚本——常规——全部显示——编写全部对象脚本——确定(记住存放的位置)。
4、用记事本打开刚才生成的SQL脚本,在编辑栏——替换——查找内容为“smalldatetime”替换为“datetime”——替换全部;完成后再在编辑栏——替换——查找内容为“nvarchar”替换为“varcha”——替换全部,完成后保存退出。
5、打开SQL企业管理器——数据库——点击这个数据库一下新建的动网数据库,然后在工具栏——SQL查询分析器——文件——打开——“刚才生成的SQL脚本”——查询——执行,然后关闭窗口。
6、再回到SQL企业管理器——数据库——点击这个数据库一下新建的动网数据库,然后打开工具栏——数据库转换服务——导入数据——下一步——数据源“Microsoft
Access”文件名“为旧的动网数据库”——下一步——再下一步——从源数据复制表和视图——下一步——全选——下一步——立即运行——下一步——完成。
7、修改动网文件夹两个文件connasp和inc\constasp。
SQL时间函数是getdata()
参考资料:
strConv是编码转换的意思。。
返回一个按照指定方式转换的 Variant (String) 值。
语法
StrConv ( 字符串,换算 [、 LCID ] )
StrConv函数语法具有以下参数:
参数
说明
字符串
必填。要转换的表达式的字符串。
转换
必填。整数。指定要执行的转换类型的值的总和。
LCID
可选。LocaleID,如果不同于系统 LocaleID。(系统 LocaleID 是默认值)。
设置
转换 参数设置为:
常量
值
说明
vbUpperCase
1
将转换为大写字符的字符串。
vbLowerCase
2
将转换为小写字符的字符串。
vbProperCase
3
将转换为大写的字符串中的每个单词的首字母。
vbWide
4
将窄 (单字节) 字符为宽 (双字节) 字符的字符串中。
vbNarrow
8
将转换为窄 (单字节) 字符的字符串中的宽 (双字节) 字符。
vbKatakana
16
将字符串中的平假名字符转换为片假名字符。
vbHiragana
32
将字符串中的片假名字符转换为平假名字符。
vbUnicode
64
将字符串转换为Unicode使用系统默认代码页。(在 Macintosh 上不可用。)
vbFromUnicode
128
将字符串从 Unicode 转换为系统默认代码页。(在 Macintosh 上不可用。)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)