实际上,当我通过SQL查询拉取它们时,我在SQL表中有不同的日期,日期时间字段的日期应该有固定的日期。
示例:(日-月-年(日应为"7">(7 毫米-年(
- 2007/8/10> 2007/08/07
- 2013/12/27> 2013/12/07
- 2017-03-01> 2017-03-07
有人可以帮助我吗?提前谢谢。
找出 7 和原始日期日期之间的差值,并将其添加到原始日期:
SELECT DATEADD(DAY, 7 - DAY(OriginalDate), OriginalDate)
使用DATEPART
去掉月份和年份部分。将它们转换为 varchar 并与 07
连接。
查询
select '07-' +
cast(DATEPART(mm, [date_column]) as varchar(2)) + '-' +
cast(DATEPART(yyyy, [date_column]) as varchar(4))
from your_table_name;
假设您可能需要更改日期数字示例
DECLARE @dayNum char(2)
SELECT @dayNum = '07'
select @dayNum + Right(convert(char(10),getdate(),105),8)
如果不是这种情况,您可以这样做
select '07'+ Right(convert(char(10),'10-08-2007',105),8)
我会这样走:
SELECT CONVERT(DATE,CONVERT(VARCHAR(6),GETDATE(),112)+'25',112);
格式为 112
的CONVERT
会将日期返回为未分离的 ISO(今天我们会得到 20170407
(。将其转换为VARCHAR(6)
将隐式地切掉当天的部分(201704
(。
现在我们添加一个日期并再次使用 CONVERT
与 112
,但现在将DATE
作为目标类型。
要记住的一件事:您添加的日期必须是两位数。您可以通过以下方式实现此目的
DECLARE @int INT=7;
SELECT REPLACE(STR(@int,2),' ','0');
<</div>
div class="one_answers"> 使用 DATEFROMPARTS: 更新仅适用于 2012 - OP 已标记 SQL-Server 2008
select DATEFROMPARTS ( year('10-08-2007'), month('10-08-2007'), 7 )
假设您的字段是日期时间数据类型,而您的固定日期是整数类型。
选择日期时间列+(你的参数固定日期-日期部分(dd,日期时间列((