Sk1*_*1X1 5 sql t-sql sql-server datetime
我对当前月份和年份的特定日的回归有问题.我需要例如第15天.直到现在我在FB/IB现有功能中使用:
IB_EncodeDate(EXTRACT(YEAR FROM Current_Date),EXTRACT(Month FROM Current_Date),15)
Run Code Online (Sandbox Code Playgroud)
是否存在将此转换为MSSQL数据库的简单方法?
编辑.我需要以OLE格式输出(例如41,348)来将日期与另一个日期进行比较.我将数据库中的日期与当月的第15天进行比较.
本月的第15天:
SELECT DATEADD(DAY, 14, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0));
Run Code Online (Sandbox Code Playgroud)
为了获得基于这个"神奇"日期的愚蠢的OLE表示,1899-12-30:
SELECT DATEDIFF(DAY, -2, DATEADD(DAY, 14,
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)));
Run Code Online (Sandbox Code Playgroud)
回答(3月11日,当我更新此答案以了解更改的要求时):
-----
41348
Run Code Online (Sandbox Code Playgroud)
那么,您有一个日期,并且想要返回同月的 15 日?好吧,假设 SQL Server 2008,您可以这样做:
SELECT CONVERT(DATE,CONVERT(VARCHAR(6),GETDATE(),112)+'15',112)
Run Code Online (Sandbox Code Playgroud)
对于以前版本的 SQL Server:
SELECT CONVERT(DATETIME,CONVERT(VARCHAR(6),GETDATE(),112)+'15',112)
Run Code Online (Sandbox Code Playgroud)