Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将月/日和年转换为mm dd yr格式_Sql Server - Fatal编程技术网

Sql server 如何将月/日和年转换为mm dd yr格式

Sql server 如何将月/日和年转换为mm dd yr格式,sql-server,Sql Server,我有一个列,CLTDTD,它以以下格式保存月份和日期: 102 602 921 827 1220 例如,102将是1月2日 我还有一个专栏,CLTATY,它以以下格式保存年份: 一九九八年 0 一九九九年 2003年 两者都以数字格式保存,我真正需要的是将它们合并成一个实际的mm dd yyyy格式的日期,该日期可以显示今天日期(GetDate)后7年内的任何记录 为了更清楚我需要的日期范围。我需要从今天起超过7年的所有日期(2006年及以上) 选择 其中DATEDIFF(yy,cast

我有一个列,
CLTDTD
,它以以下格式保存月份和日期:

  • 102
  • 602
  • 921
  • 827
  • 1220
例如,102将是1月2日

我还有一个专栏,
CLTATY
,它以以下格式保存年份:

  • 一九九八年
  • 0
  • 一九九九年
  • 2003年
两者都以数字格式保存,我真正需要的是将它们合并成一个实际的
mm dd yyyy
格式的日期,该日期可以显示今天日期(GetDate)后7年内的任何记录

为了更清楚我需要的日期范围。我需要从今天起超过7年的所有日期(2006年及以上)

选择


其中DATEDIFF(yy,cast(cast(CLTATY作为varchar)+'-'+cast(CLTDTD/100作为varchar)+'-'+cast(CLTDTD%100作为varchar)作为DATETIME),GETDATE()您真正需要的是一个使用合理且类型正确的模式的数据库。如果可能的话,你应该改变它。这将是非常棘手的事情。你怎么知道102是1/02而不是10/2?您需要用完整的数字保存所有内容,即10/2的.1002。@Gramma2005这是一个数字列,因此他可能使用了4个“数字”,但数字会删除前导0。但仍然是:这应该是一个datetime类型。即使是格式化字符串也是错误的。Msg 242,级别16,状态3,第1行将varchar数据类型转换为datetime数据类型会导致值超出范围。它必须与国家/地区相关。在这里,Cast('2012-01-01'作为日期时间)计算。将日期部分移动到您的特定位置,例如“dd-mm-yyyy”或“mm-dd-yyyy”,而不是“yyy-mm-dd”