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语句阿。。谢谢。。
...全文
638 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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:俺基础比较差。

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧