sql 把年份字段和月份字段转化成日期格式

如何将数据库表中的年份字段(所属年)和月份字段(所属月),在查询所有数据时合并成一个字段,并转换为日期类型,如图,求大神指教

datetime格式需要年月日,表里面只有年月,假设日都是01,每个月的第一天
select convert(datetime ,(convert(varchar,所属年)+'-'+convert(varchar,所属月)+'-01 00:00:00.000')) from 表
结果就是datetime类型的了追问

报错: 从字符串转换日期和/或时间时,转换失败。

追答

那你要确认 所属年 所属月 是表显示的格式:
所属年:2013
所属月:01..12
要不然会报错的

追问

嗯啊,好了,但是加上条件后就报错了: 列名fld_date 无效

追答

列的别名不能做判断的,改成:convert(datetime ,(convert(varchar,所属年)+'-'+convert(varchar,所属月)+'-01 00:00:00.000')) < '2013-07-01 00:00:00.000'

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-29
select STR_TO_DATE( CONCAT(所属年,所属月,'01'),'%Y%m%d') from ...
第2个回答  2013-08-29
select convert(datetime,所属年+'-'+所属月) from 表追问

不行啊,亲,会报错。 错误信息:从字符串转换日期和/或时间时,转换失败。

追答

那你加个日就可以了 (datetime,所属年+'-'+所属月-‘01’)