当前位置: 首页 > 面试题库 >

在SQL Server 2008中创建日期

辛承志
2023-03-14
问题内容

是否有与DATEFROMPARTS(year, month, day)SQL Server
2008类似的东西?我想使用当前的年份和月份创建日期,但是要使用自己的月份。为了在计算列公式中使用它,需要一行完成。

例如(我不确定是否有效,因为我没有SQL Server 2012):

DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 3)

在SQL Server 2008中有没有办法做到这一点?

DATEFROMPARTS似乎仅在SQL Server 2012中可用(链接)


问题答案:

使用3示例中的,您可以执行以下操作:

dateadd(dd, 3 -1, dateadd(mm, datediff(mm,0, current_timestamp), 0))

它的工作方式是查找自该纪元日期以来的月数,将这些月加回该纪元日期,然后将所需的天数添加到该先前的结果中。听起来很复杂,但是它建立在截断日期Date(而不是DateTime)类型到Sql
Server 2008之前的截断日期的规范方法的基础上。

您可能会在这里看到其他建议构建日期字符串的答案。我敦促您 避免使用字符串的建议 。使用字符串可能会慢 很多
,并且使用其他日期排序规则/格式可能会有一些陷阱。



 类似资料:
  • 问题内容: 想创建一个日期列表,从今天开始,然后返回任意天数,例如在我的示例中为100天。有没有比这更好的方法了? 问题答案: 略胜一筹…

  • 问题内容: 动态创建日期范围以便与报表配合使用的最佳方法。 因此,如果给定的一天没有活动,我可以避免报表上的空行。 通常是为了避免此问题:在sql结果中(在mysql或perl端)填充空日期的最直接方法是什么? 问题答案: 在MySQL中,没有直接的方法可以做到这一点。最好的选择是用您选择的服务器端语言生成一个daterange数组,然后从数据库中提取数据,并使用date作为键将结果数组与date

  • 问题内容: tl; dr:我想在Redshift中生成一个日期表,以使报表更易于生成。最好不需要在Redshift中已经有大表,而需要上传一个csv文件。 长版:我正在处理一份报告,其中我必须平均一周中每天创建的新项目。日期范围可能跨越数月或更长时间,因此可能有5个星期一,但只有4个星期日,这可能会使数学有些棘手。另外,我不能保证每天都有一个实例,尤其是一旦用户开始切片数据时。其中,这是BI工具的

  • 我对cassandra数据库中的数据排序有问题。这是我的桌子结构: 当我运行这个查询时,我得到了以下消息: 查询: 信息: 或者此查询返回没有排序的数据:

  • 我有一个多节点集群星火集群。我正在使用log4j创建日志。日志只创建集群中的所有节点。它们也是在/tmp目录中创建的,而不是在任何其他目录中创建的。这是

  • 我有一个java代码,它将一个对象插入到Mongo DB的一个集合中。当我插入这个新对象时(下面给出了该对象的详细信息),我还需要插入一个创建日期。处理这件事的最好方法是什么?由于我们有不同的时区,我想确保我遵循了正确的方法来保存和读取日期字段。 文档结构:我需要让我的java代码创建一个系统日期,以正确的格式将创建日期插入Mongo DB。 {“_id”:对象id(“568ac782e4b0fb