Sql server 日期格式转换,如何保持原日期?

网上好多都是CONVERT(varchar(100), getdate(), 112)这种,问题就出在getdate()上,他会把无论什么日期都给改成系统的时间,原日期都没了,怎么保持原日期不变又改变格式啊?

楼主好,你应该是没理解Convert函数的意义吧。convert函数在进行日期转换类型的时候,是直接就可以写参数的,也就是getdate()这个字段是个参数,你可以写你表中的列名啊。比如我随便写一个,如图所示。

图中很明显,我传入的参数是视图中的时间字段,同样就转换出来了。convert转换参数并不一定是getdate(),而是任意的时间字段都可以。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-17

下面这段代码演示了得到指定日期的那一个月的1号:

DECLARE @GETDATEMEGORE DATETIME
DECLARE @GETDATEMEGO DATETIME

SET @GETDATEMEGORE = '2015-10-13 12:20:31'
SET @GETDATEMEGO = CONVERT(varchar(100), (DATEADD(DD,-DAY(@GETDATEMEGORE)+1,@GETDATEMEGORE)), 23)

SELECT @GETDATEMEGO AS LSDATE

能看明白吗?好吧,再简单一点儿,按你的代码来写:

DECLARE @GETDATEMEGORE DATETIME
DECLARE @GETDATEMEGO DATETIME

SET @GETDATEMEGORE = '2015-10-13 12:20:31'
SET @GETDATEMEGO = CONVERT(varchar(100), @GETDATEMEGORE, 112)

SELECT @GETDATEMEGO AS LSDATE

这回懂了吧。

本回答被提问者和网友采纳