Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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 选择查询以从字符串值返回日期时间_Sql_Sql Server - Fatal编程技术网

Sql 选择查询以从字符串值返回日期时间

Sql 选择查询以从字符串值返回日期时间,sql,sql-server,Sql,Sql Server,我有以下sql查询 Select ISNULL([SaleDate] ,'Totals') AS [DispTotals], case when SaleDate is null then ' ' else CONVERT(datetime, SaleDate, 103) end AS [DayOfDateDD], FROM ()------ DispTotals DayOfDateDD 26/05/2013 2013-05-26 00:00:00.000 27/05/20

我有以下sql查询

 Select ISNULL([SaleDate] ,'Totals') AS [DispTotals],
case when SaleDate is null then '  ' else CONVERT(datetime, SaleDate, 103) end AS   [DayOfDateDD],
FROM ()------
DispTotals      DayOfDateDD
26/05/2013  2013-05-26 00:00:00.000
27/05/2013  2013-05-27 00:00:00.000
Totals      1900-01-01 00:00:00.000
sql查询的结果

 Select ISNULL([SaleDate] ,'Totals') AS [DispTotals],
case when SaleDate is null then '  ' else CONVERT(datetime, SaleDate, 103) end AS   [DayOfDateDD],
FROM ()------
DispTotals      DayOfDateDD
26/05/2013  2013-05-26 00:00:00.000
27/05/2013  2013-05-27 00:00:00.000
Totals      1900-01-01 00:00:00.000
我知道SaleDate的最后一行是空值。 当我更改查询时,如下所示:

Select ISNULL([SaleDate] ,'Totals') AS [DispTotals],
case when SaleDate is null then 'NULLVALUE ' else 'NONULL' end AS [DayOfDateDD],
结果是:

DispTotals      DayOfDateDD
26/05/2013  NONULL
27/05/2013  NONULL
Totals      NULLVALUE 
当SaleDate中有空值(NULLVALUE)时,我需要一个空白。 我不知道该怎么解决这个问题

请帮忙

CONVERT(datetime, NULLIF(SaleDate, ''), 103) 

有助于避免日期字段显示为空而不是空?由于blank在1900年铸造。。。默认日期值,您必须转换回VARCHAR:

CAST(ISNULL(CASE WHEN SaleDate IS NULL
             THEN NULL
             ELSE CONVERT(datetime, SaleDate, 103) 
             END,''),AS VARCHAR(20))

如果内部CONVERT语句返回NULL,那么您可以完全去掉CASE语句,只保留CAST(ISNULL)(wrapper.

您不应该使用SQL查询格式化输出数据。谢谢。但是对于我使用的报表,我需要使用SQL查询格式化。我不同意Andrey的观点,在SQL2012中,他们添加了非常方便的格式化函数来帮助格式化输出。“当有空值时,我希望有一个空格”-根据您的回答,看起来是另一种方式:您ant在有空空间时为空值。