【问题标题】:Microsoft SQL server edit imported fileMicrosoft SQL Server 编辑导入的文件
【发布时间】:2018-10-22 11:12:30
【问题描述】:

我是 SQL Server 的新手。我已将 Excel 文件导入我的 SQL Server 数据库。有一列名称为 myDate,它显示的日期如下:20.07.2018

我确实右键单击了我的表格,然后我选择了“选择 1000 行”并在那里添加了转换代码,但它不起作用!我的结果和以前一样! (格式没有改变)。有谁知道为什么它没有改变?

这是我写的:

select convert (varchar,[dateColumn],102) as date2
from [test1].[dbo].[change1]
Go

【问题讨论】:

  • 我假设 [dateColumn] 是一个 varchar 开头?
  • 当您导入 excel 文件时,它会将 myDate 列存储为 varchar。正确的做法是更新表,将数据类型更改为日期。

标签: sql-server tsql sql-server-2016


【解决方案1】:

列的名称为 myDate 并不意味着它的数据类型是日期、日期时间或日期时间 2。显然您的数据类型是 VARCHAR。对于这样的列,您应该使用 date、datetime 或 datetime2。

对于转换,您可以这样做:

SET DATEFORMAT DMY;

SELECT convert (varchar, TRY_CAST(myDate AS DATE),102) as date2 
from [test1].[dbo].[change1]; 

(这又是一个问题,你为什么要转换为 varchar)。

【讨论】:

  • 总是,总是,总是指定您使用的任何字符串数据类型的长度。
  • @SMor,我们为什么在这里需要它(反过来,为什么总是像你一样大喊大叫)?
猜你喜欢
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 2015-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
相关资源
最近更新 更多