首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >year...is的第一次约会是错的还是坏的?

year...is的第一次约会是错的还是坏的?
EN

Stack Overflow用户
提问于 2016-01-08 14:32:51
回答 3查看 160关注 0票数 0

因此,考虑到每次我寻找SQL查询返回的第一天,我得到这个..Stackoverflow大答案

代码语言:javascript
运行
复制
   SELECT
   DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) AS StartOfYear,
   DATEADD(yy, DATEDIFF(yy,0,getdate()) + 1, -1) AS EndOfYear

使用下面的工具有什么问题吗?

代码语言:javascript
运行
复制
SELECT CONVERT(DATE,CONVERT(CHAR(4), Year(Getdate())) + '0101')

就我个人而言,我觉得这个更容易立即理解。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-08 14:47:01

这取决于你所说的“错误”是什么意思。

另一种方法可能更快,因为它将日期保持在它们的本机格式中,这实际上是Server中的数字数据,而SQL Server处理数字的速度通常比字符串快。此外,还有将日期转换为字符串和返回的开销。

但是这种性能差异是非常小的,所以这取决于您是否希望拥有更多的性能,还是更易于阅读和理解的代码。

票数 3
EN

Stack Overflow用户

发布于 2016-01-08 14:46:52

如果您想在处理字符串上花费几个额外的CPU周期,那么没有什么问题。

我看到了使用日历表的巨大好处。

在这方面有很多例子,您可以找到一个这里

票数 1
EN

Stack Overflow用户

发布于 2016-01-08 15:33:35

更容易理解?这不是评论的目的吗?

在我看来,对数据库做的最重要的事情就是确保数据是准确的。第二件最重要的事情是快速编写代码。正如其他人所指出的,执行时间差可能只有几个计算机周期。问题是..。您可以在一个有1亿行的表上执行此操作,突然之间,这些额外的时钟周期需要几分钟。

当人们不知道更好的代码时,我对使用“易于理解”的代码没有问题。在这种情况下,你确实更了解。使用较慢的代码将是一个错误。如果您想让代码更容易理解,请向代码中添加注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34679481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档