将NVARCHAR(255)转换为DATE [英] Converting NVARCHAR(255) to DATE
问题描述
我正在尝试使用Excel将一些旧的SQL Server数据传输到SQL Server。似乎导入/导出数据
应用程序会自动将大多数数据列设置为 NVARCHAR(255)
。我有一个问题是我的列之一应该是一个 DATE
类型,但其中的所有数据看起来像这样 18.08.2000 14:48 :15
。
所以,当我尝试使用这个查询:
SELECT CONVERT(日期,DATE_TIME,113)
FROM someTable
我得到这个错误:
消息9807,级别16,状态0,行1
输入字符串不遵循样式113,要么更改输入字符串或使用不同的样式。
没有 [styles]
通过 CAST和CONVERT(的Transact-SQL)在我的工作
非常感谢任何建议或帮助。
SOLVED: / p>
UPDATE myTable的
设置COLUMNNAME = CONVERT(NVARCHAR(255),将(SMALLDATETIME,COLUMNNAME,105))
ALTER TABLE myTable的
ALTER COLUMN COLUMNNAME SMALLDATETIME
UPDATE myTable的
设置COLUMNNAME = CONVERT(NVARCHAR(255),CONVERT(SMALLDATETIME,columnName,105))
ALTER TABLE myTable
ALTER COLUMN columnName SMALLDATETIME
I'm trying to transfer some old SQL Server data using Excel into SQL Server. It seems that Import/Export Data
application automatically sets most data columns to NVARCHAR(255)
. Problem I have, is one of my columns is supposed to be a DATE
type, but all data in it looks like this 18.08.2000 14:48:15
.
So, when I try to use this query:
SELECT CONVERT(Date, DATE_TIME, 113)
FROM someTable
I get this error:
Msg 9807, Level 16, State 0, Line 1
The input character string does not follow style 113, either change the input character string or use a different style.
None of the [styles]
from CAST and CONVERT (Transact-SQL) are working in my case.
Any advise or help is greatly appreciated.
SOLVED:
UPDATE myTable
SET columnName = CONVERT(NVARCHAR(255),CONVERT(SMALLDATETIME, columnName,105))
ALTER TABLE myTable
ALTER COLUMN columnName SMALLDATETIME
So, if it will ever become useful to anyone, this is the exact code that changes datatype NVARCHAR to DATETIME:
UPDATE myTable
SET columnName = CONVERT(NVARCHAR(255),CONVERT(SMALLDATETIME, columnName,105))
ALTER TABLE myTable
ALTER COLUMN columnName SMALLDATETIME
这篇关于将NVARCHAR(255)转换为DATE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!