datetime类型转换为int类型

caojun007 2005-10-12 01:08:01
A表的a字段类型为datetime,b字段类型为int.如何在查询分析器中,使用sql语句将a字段中日期的年份值转换到b字段中?

转换前:
a b
2000-2-1 null
2001-3-8 null
2005-10-10 null

转换后:
a b
2000-2-1 2000
2001-3-8 2001
2005-10-10 2005

拜托高手给出完整的sql语句阿。。谢谢。。
...全文
453 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
caojun007 2005-10-12
上面没说清楚,补充一下:

datepart 返回 int
datename 返回 字符型

按道理说,update [tablename] set b = datename(month,a)应该返回月份的英文单词阿。。可是为什么还是返回数字呢?即使我将b字段的类型改为char型返回的仍然是数字。
回复
caojun007 2005-10-12
非常感谢 happygong(高兴) 大哥。。也谢谢scmail81。

测试update [tablename] set b = datepart(year,a)或者update [tablename] set b = datename(year,a)都可以。。可是我的b字段是int型的,datename为什么也可以呢?
回复
$扫地僧$ 2005-10-12
datepart 返回 int
datename 返回 字符型
回复
happygong 2005-10-12
update [tablename] set b = datepart(year,a)
回复
caojun007 2005-10-12
我查询了Transact-SQL中的一些信息。好像有一个year函数可以转化,下例从日期 03/12/1998 中返回年份数。
SELECT "Year Number" = YEAR('03/12/1998')

可是year(a,b)函数中的b参数是具体的值,我的是整个字段。。

设想的是使用一些语句依次取a字段的每一条数据,带入到year的b参数中,这样完成转化。
可是这些语句怎么写?麻烦知道的告诉我一下阿。。

Ps:俺基础比较差。
回复
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-10-12 01:08
社区公告
暂无公告