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

如何从SQL(T-SQL)中的日期组件创建日期?

慕意致
2023-03-14
问题内容

如何在SQL(T-SQL)中构造本机日期数据类型值?

我添加了一些示例,但请提供您自己的示例。我的示例假定月份和年份以整数值存储(或随时可用),但是 您的
示例可能假定日期和月份(或其他形式)以文本存储。我看不到未来。给我一个惊喜


问题答案:

为什么将输入数据作为字符串,最明显(因此不足为奇,对不起)的解决方案之一是:

SELECT
  mydate = CAST([year] + RIGHT('0' + [month], 2) + '01' AS datetime)
                                           /* or 'AS date' in SQL Server 2008+ */
FROM (
  SELECT [month] = '2',  [year] = '2011' UNION ALL
  SELECT [month] = '03', [year] = '2011' UNION ALL
  SELECT [month] = '5',  [year] = '2011' UNION ALL
  SELECT [month] = '12', [year] = '2011' UNION ALL
  SELECT [month] = '8',  [year] = '2084' UNION ALL
  SELECT [month] = '1',  [year] = '1940'
) x;


 类似资料:
  • 问题内容: 我正在尝试将包含2007年12月1日等各个部分的日期转换为SQL Server 2005中的日期时间。我尝试了以下方法: 但这会导致日期错误。将三个日期值转换为正确的日期时间格式的正确方法是什么? 问题答案: 假设全部,如何:

  • 主要内容:GETDATE (),DATEPART(),DATEADD(),DATEDIFF(),CONVERT ()在 T-SQL 中,日期函数用于生成日期和时间的查询。 GETDATE () GETDATE()返回当前日期和时间。 GETDATE ()函数的语法 — 示例 该查询将返回 T-SQL 中的当前日期。 DATEPART() 它给出了日期或时间的一部分。 DATEPART()函数的语法 - 示例 该查询在 T-SQL 中返回当月的一部分。 DATEADD() 它通过减去或加上日期和时

  • 问题内容: 我只想验证用户的给定输入 即使日期有效,该日期也将返回false,因为日期为澳大利亚格式 我可以将最后一行更改为以下内容 它的工作原理。但是,如果@Userinput是垃圾(即:-‘hello’),则最后一条语句将失败。无论用户输入什么内容,我怎样才能得到一个能验证为澳大利亚日期(dd / mm / yyyy)的东西? 谢谢 问题答案: 使用 SET DATEFORMAT 指定您希望输

  • 问题内容: 我正在尝试对此表进行查询: 我想获得输出: 我想得到那个结果,所以我会知道什么时候开始赚钱,什么时候停止钱。我还对开始花钱之前的月份数(这解释了第一行)以及停止钱的月份数(这解释了为什么我也对2013年7月至2013年8月的第三行感兴趣)感兴趣。 )。 我知道我可以在日期上使用min和max,在金额上使用sum,但是我不知道如何以这种方式划分记录。 谢谢! 问题答案: 这是一个主意(和

  • 问题内容: 是否有与SQL Server 2008类似的东西?我想使用当前的年份和月份创建日期,但是要使用自己的月份。为了在计算列公式中使用它,需要一行完成。 例如(我不确定是否有效,因为我没有SQL Server 2012): 在SQL Server 2008中有没有办法做到这一点? DATEFROMPARTS似乎仅在SQL Server 2012中可用(链接) 问题答案: 使用示例中的,您可以

  • 问题内容: 我与第三方数据库,该数据库(无论何种原因)内部存储格式的日期的工作如用于作为。 有没有简单的方法可以将其转换为SQL Server类型? 我尝试将上面的内容手动转换为长度为6的字符序列,并将其与“ 01”连接起来以获取给定月份的开始,如下所示: 然后将其包装在转换中: 但这似乎抛出了; 从字符串转换日期和/或时间时转换失败 谁能告诉我我在做什么错? 谢谢!:) 问题答案: 您需要使用正