Sql Server-日期转换

Nai*_*air 0 sql sql-server datetime date reporting-services

遵循自定义转换器函数,该函数将字符串值(带偏移的完整日期)转换为日期时间,并仅提取日期部分并将提取的日期部分转换为varchar.我知道这是精神上的.但是,这是数据提取和报告(SSRS)的一部分.

ISNULL(CONVERT(varchar(16), CONVERT(datetime,dt, 103), 20), '')
Run Code Online (Sandbox Code Playgroud)

哪里dt是我的专栏,我有"完整的日期时间偏移"存储为字符串

它可以按预期工作,不包括在一个案例中 即如果dt没有值或空字符串,那么上面的函数(CONVERT(datetime,dt, 103), 20))的一部分返回一个值,即1900/01/01.而这1900/01/01随后转换成字符串.这是罪,我不希望dt值的最终转换值中的任何数据为空.

问题:有人可以帮助我发现上述转换器功能中的问题(如果有的话).如果没有,谁将成为这里的罪魁祸首,返回1900/01/01.

Aar*_*and 8

替换dtNULLIF(dt, '')

(另外,请停止将日期存储为字符串.请.)

  • 你可以写一个完全错误的答案,来自Heap的每个人都可能仍然赞成它. (2认同)