| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11337 人关注过本帖
标题:如何将字符型字段转换成日期型字段
只看楼主 加入收藏
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
若要还原成原来的样子,可以是这样
alter table 表A add b c(8)
replace all b with dtos(a)
alter table 表A drop a
alter table 表A rename b to a

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2012-10-18 19:58
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
收藏
得分:0 
你的应该达到了一楼的目的

我是来向高手学习的!
2012-10-18 20:04
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
收藏
得分:0 
发一个运行结果上来看看吧。。。我用你的程序好象还是要出错
是dtoc还是dtos?
图片附件: 游客没有浏览图片的权限,请 登录注册

我是来向高手学习的!
2012-10-18 20:20
星期吧666
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-3-10
收藏
得分:0 
replace 函数的返回值应该是字符型的,而新加的字段是日期型的 所以会报那个错误
我是用tiger的index语句把字符字段安从小到大排序了 ,但不知道排序后如何将排序的结果的一部分copy出来 。
比如说我想把20120930以后日期的记录copy出来,请指教

[ 本帖最后由 星期吧666 于 2012-10-18 20:31 编辑 ]
2012-10-18 20:27
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
提供部分数据表,让大家帮你
2012-10-18 20:52
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
SET CENTURY ON
SET DATE YMD
ALTER TABLE 表1 add 日期字段 D(8)
REPLACE all 日期字段 with CTOD(STUFF(STUFF(a,5,0,"/"),8,0,"/"))

相互学习,互相交流,共同提高。
2012-10-18 20:57
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
收藏
得分:0 
转换前的数据
图片附件: 游客没有浏览图片的权限,请 登录注册

转换后的数据
图片附件: 游客没有浏览图片的权限,请 登录注册

程序:
程序代码:
CLEAR
SET CENTURY ON
SET DATE YMD
USE 字符转换为日期
&&1.增加辅助字段rq2(字符型)
ALTER table 字符转换为日期 add rq2 C(11) 
&&因为日期型为11位长度,例如:2011/12/13
&&2.将rq2内容替换为日期形式,如:2011/12/13
REPLACE ALL rq2 WITH SUBSTR(rq,1,4)+"/"+SUBSTR(rq,5,2)+"/"+SUBSTR(rq,7,2)
&&3.增加rq3字段,存放从字符转换为日期的数据
ALTER table 字符转换为日期 add rq3 D(11)
&&4.将rq3的内容替换为 rq2的内容
REPLACE ALL rq3 WITH CTOD(rq2)
&&更改表结构,将rq类型改为日期型,将rq3的内容放进rq
ALTER table 字符转换为日期 alter rq D(11)
REPLACE ALL rq with rq3
&&5.时删除辅助列rq2,rq3
ALTER TABLE 字符转换为日期 drop rq2
ALTER TABLE 字符转换为日期 drop rq3
&&设定索引
index on rq tag riqi
&&显示表内容
browse


[ 本帖最后由 wjp456789 于 2012-10-18 21:42 编辑 ]

我是来向高手学习的!
2012-10-18 21:38
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
收藏
得分:0 
16楼的程序可以实现增加日期字段。并将字符型数据更改为日期型数据存入其中。
比我的笨办法好。
只是还没加最后一步。将数据复制到原字段,将增加的字段删除。再索引
我试了11楼的思路。将原字段删除。再将新增加的字段更名。再索引。好象行不通。好象提示索引字段不能删除,记不清楚了。我对这方面理解不深。不知道说得对不对

我是来向高手学习的!
2012-10-18 21:48
jsyg
Rank: 2
等 级:论坛游民
威 望:1
帖 子:75
专家分:38
注 册:2012-10-20
收藏
得分:0 
以下是引用星期吧666在2012-10-18 20:27:57的发言:

replace 函数的返回值应该是字符型的,而新加的字段是日期型的 所以会报那个错误
我是用tiger的index语句把字符字段安从小到大排序了 ,但不知道排序后如何将排序的结果的一部分copy出来 。
比如说我想把20120930以后日期的记录copy出来,请指教

    locate for 你想记录指针定位处

copy next 数值 to 表

2012-10-21 22:18
其实不必完美
Rank: 1
等 级:新手上路
帖 子:31
专家分:6
注 册:2012-10-28
收藏
得分:0 
打开工具选项卡,找到里面的区域,将日期格式改为“月/日/年”的格式,就可以使用ctod"月/日/年"将字符型改为日期型了!
2012-10-28 18:27
快速回复:如何将字符型字段转换成日期型字段
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018090 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved