CAST AS DATE以NVARCHAR格式返回

时间:2017-01-04 20:49:55

标签: sql-server date datetime casting nvarchar

CAST(GETDATE() AS DATE)NVARCHAR(10)中返回。 DATETIME将列更改为日期,但我不想要时间。我想要一个仅包含日期的DATE格式化列。我错过了什么?

3 个答案:

答案 0 :(得分:0)

Date_Issue

所以很明显它是用date存储值,它只是在返回的结果上显示错误的类型。如果您可以看到图像,它会在其他两个位置显示为日期,但在底部您可以看到它显示为NVARCHAR的位置。我不知道为什么会这样做,可能与SQL DBX有关。无论哪种方式,抱歉浪费每个人的时间。我从来没有看到它在返回的结果中显示错误的类型。

答案 1 :(得分:0)

作为一种方式来演示强制转换(getdate()作为日期)确实返回日期的数据类型

select
   cast(getdate() as date) cast_getdate
into MyTable_x
;

select
  TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, DATA_TYPE 
from information_schema.columns
where table_name = 'MyTable_x'
;


+------------+--------------+------------------+-----------+
| TABLE_NAME | COLUMN_NAME  | ORDINAL_POSITION | DATA_TYPE |
+------------+--------------+------------------+-----------+
| MyTable_x  | cast_getdate |                1 | date      |
+------------+--------------+------------------+-----------+

答案 2 :(得分:-1)

我猜你需要更改列的数据类型。试试这个:

ALTER TABLE [表名] ALTER COLUMN [列名] DATE