我只需要 Select 给定DateTime变量月份的第一天.

我知道使用这种代码很容易:

select CAST(CAST(YEAR(@mydate) AS VARCHAR(4)) 
+ '/' + CAST(MONTH(@mydate) AS VARCHAR(2)) + '/01' AS DATETIME)

但不幸的是,这不是很优雅,也不是很快.

有更好的方法吗?我正在使用SQL Server 2008.

推荐答案

SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS StartOfMonth

Sql相关问答推荐

SQL -连接两个表的次数与第一个表中匹配的次数相同

数据子集的左连接

无法找到正确的SQL查询需求

用于平均多个数据并与一个数据点进行比较以判断偏移量的SQL查询

如何用3个(半)固定位置建模团队,并有效地搜索相同/不同的团队?

Lag()函数的差异:R与SQL(将R代码转换为SQL)

MariaDB查询在逗号分隔的字符串中查找多个值

替换上一个或下一个值中的空值并添加其价格日期

如何在SQL中更新Json字符串

将日期时间转换为日期格式

使用多个嵌套数组查询JSON数据

如何在Postgres中为单值输入多行?

将具有嵌套 XML 的列转换为 SQL 中的表格格式?

如何根据 SQL 中的阈值标记一个集群中的所有值?

如何将 START 和 END 日期之间的日期差异作为 SQL 中的单独列获取

如何从三个连接表中获取数据,并始终显示第一个表中的数据,以及第三个表中的空值或现有记录?

将一名成员金额分配给群组内的其他成员

Postgresql 需要一个查询,为我提供所有没有具有特定状态值的子元素的父母

从 varchar 列中删除特殊字符后的前面的零和字符时遇到问题

存储过程 - 动态 SQL 中不同列值的计数