我对SQL Server比较陌生,所以我想知道如何将数据类型从varchar
转换为date
格式?我有几千条记录,因此我需要一个查询来帮助您在单个查询中将varchar
转换为date
。
我在yyyymmdd
中使用此格式的日期:varchar(8)
,我希望将其转换为yyyymmdd
,格式为date
。
有任何疑问可以帮助我吗?
答案 0 :(得分:1)
只需使用此内置CONVERT
功能,然后选中此Link以格式化日期
-- Use 101 if you have divider in your date
SELECT convert(datetime, '2014-01-02',101) as [DateTime]
-- Use 112 if you don't have divider in your date
SELECT convert(datetime, '20140131',112) as [DateTime]
<强>编辑:强>
UPDATE yourTable SET field = convert(datetime, 'yourFieldName',112)
--This will update all of your field regardless of any particular row
--If you want to update any particular set of rows use `WHERE` clause
如果你有更多不同的格式转到给定的链接。
答案 1 :(得分:1)
对于VARCHAR和DATETIME之间的各种转换,请查看this link。
实际上在您的情况下,由于您的VARCHAR采用yyyymmdd格式,您可以:
convert(datetime, YourVarcharDateField, 112)
答案 2 :(得分:0)
ALTER TABLE [dbo].[table] ADD ConvertedDate Date
UPDATE [dbo].[SysData] SET ConvertedDate = CAST(VarCharDate as Date)
ALTER TABLE [dbo].[table] DROP COLUMN VarCharDate
答案 3 :(得分:0)
可以隐式或显式转换数据类型。 隐式转化对用户不可见。 SQL Server自动将数据从一种数据类型转换为另一种数据类型。例如,当smallint与int进行比较时,smallint会在比较进行之前隐式转换为int。
显式转换使用CAST或CONVERT函数。
CAST和CONVERT函数将值(局部变量,列或其他表达式)从一种数据类型转换为另一种数据类型
convert(datetime, '2013-05-04',101)
CAST ( expression AS data_type )
答案 4 :(得分:0)
使用CAST
OR CONVERT
函数将字符串转换为日期
试试这个:
SELECT CAST('20140102' AS DATE) AS convertedDate;
SELECT CAST(colName AS DATE) AS convertedDate FROM tableA; -- Replace column name and table name
或强>
SELECT CONVERT(DATE, '20140102', 112) AS convertedDate;
SELECT CONVERT(DATE, colName, 112) AS convertedDate FROM tableA; -- Replace column name and table name
两个查询的OUTPUT :
|convertedDate|
|-------------|
|2014-01-02 |
答案 5 :(得分:0)
在SQL SERVER中,有两种类型的内置转换技术。
转换具有自己的默认值,因此它将在SQL SERVER的升级版本中过时 更好地利用CAST转换技术
在你的场景中。已经有数据类型为Varchar(8)的日期试图转换为日期
系统地解决。
在现有表格中添加一个新列。
Alter Table Table_name Add changedDataTypeDate Date
将varchar数据类型中的值更新为Date Datatype
UpDate Table_name Set ChangedDataTypeDate = CAST(OriginalDataTypeDate as Date)
再次将新列名称更改为旧列名称。
Sp_Rename'Tablename.changedDataTypeDate','OriginalDataTypeDate','COLUMN'
完成了。
根据您的要求。
Alter Table customer Add Purchase_Changedtype Date
Update Customer set Purchase_changedtype = CAST(Purchase_date as Date)
(如果你需要Time也取代Datetime而不是Date)
Alter table Customer Drop column Purchase_date
Sp_Rename 'Customer.Purchase_ChangedType','Purchase_Date','Column'