回答

收藏

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

技术问答 技术问答 267 人阅读 | 0 人回复 | 2023-09-13

如何在SQL(T-SQL)中构造本机日期数据类型值?
. ]0 z4 v: e  P# ^7 F我添加了一些示例,但请提供您自己的示例。我的示例假定月份和年份以整数值存储(或随时可用),但是 您的: M1 S* B& X6 _8 B& |: O/ P; H
示例可能假定日期和月份(或其他形式)以文本存储。我看不到未来。给我一个惊喜
  Q" p- i( K1 S9 b2 g                $ e4 Z! W, P! g9 w& P8 D
解决方案:7 \. x' V9 l5 v1 y! n
                0 U; h% m+ l; O7 `5 b
) r- z9 g/ B, |. N* ]

8 Y* l! }! }( s9 t                为什么将输入数据作为字符串,最明显(因此不足为奇,对不起)的解决方案之一是:* g' }; b  i0 V
SELECT) }) Y; c- ?/ @3 z( q0 }' @5 {3 v
  mydate = CAST([year] + RIGHT('0' + [month], 2) + '01' AS datetime)! l9 y$ C9 I! B5 V1 B# J( L# Z
                                           /* or 'AS date' in SQL Server 2008+ */
  |( L9 o; o9 [FROM (* {" w3 q% C1 \
  SELECT [month] = '2',  [year] = '2011' UNION ALL
0 l/ U) v& \( q- G& L  SELECT [month] = '03', [year] = '2011' UNION ALL" F& [. m0 P4 \- i/ ^, \
  SELECT [month] = '5',  [year] = '2011' UNION ALL
) A4 K9 K, F& K5 ^8 S9 K; G; q7 R  SELECT [month] = '12', [year] = '2011' UNION ALL
* s9 Q) v# h+ [- Y+ T  SELECT [month] = '8',  [year] = '2084' UNION ALL- ~# w% N% z2 h, d" Z& u
  SELECT [month] = '1',  [year] = '1940'  X0 i" x4 K" v
) x;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则