sql - 在 SQL 中将月份和年份组合转换为日期

标签 sql sql-server sql-server-2008

我在不同的列中有月份和年份,我想在两点(即开始日期和结束日期)之间进行记录。我只有一个月和一年。我发现的一种解决方案是将日期、月份组合转换为日期。假设我有

Start month : 3 Start year : 2010
End month : 6 End year : 2013

我想将它们转换为
 start date = 01-03-2010 

 End date = 31-06-2013

任何解决方案?

最佳答案

以下是通过月份和年份查找上个月和第一个日期的方法

DECLARE @month varchar(2)
DECLARE @year varchar(4)

月份的第一个日期
set @month='03'
set @year='2010'
select cast(@year + '-' + @month + '-01' as date)

输出
2010-03-01

每月最后一天 (将您的月份增加 1,然后减去 1 天)
set @month='06'
set @year='2013'
select CAST(cast(@year + '-' + Cast(cast(@month as int )+1 as varchar(20)) + '-01' as datetime)-1 as DATE)

输出
2013-06-30

关于sql - 在 SQL 中将月份和年份组合转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138553/

相关文章:

sql - 在 SQL 函数中插入查询

sql-server - SQL 效率 : WHERE IN Subquery vs. JOIN then GROUP

c# - 在序列中动态创建图像并重置序列

sql-server - 用于 SQL Server 2008 的 TortoiseSVN 导入加载项

sql-server - 如何连接SQL Server 2008 Express?

Mysql 搜索字符串中的组或特定单词

sql - 反对向其他表插入数据的SQL触发器的原因?

sql-server - 如何确定某列是否在其表的主键中? (SQL 服务器)

SQL Server 2008 存储过程 - 优化器认为我的参数可以为空

SQL 表数十亿个条目 - 寻找性能建议