CAST(GETDATE() AS DATE)
在NVARCHAR(10)
中返回。 DATETIME
将列更改为日期,但我不想要时间。我想要一个仅包含日期的DATE格式化列。我错过了什么?
答案 0 :(得分:0)
所以很明显它是用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