【发布时间】:2016-06-12 17:35:16
【问题描述】:
我的表有一个 nvarchar 数据类型的字段。该字段包括字母数字字符和日期。如何从字段中提取日期部分?
【问题讨论】:
标签: sql reporting-services type-conversion
我的表有一个 nvarchar 数据类型的字段。该字段包括字母数字字符和日期。如何从字段中提取日期部分?
【问题讨论】:
标签: sql reporting-services type-conversion
使用CAST 进行日期类型转换。
SELECT CAST(tstamp AS DATE)
CAST 在大多数 SQL 引擎(SQL Server、PostgreSQL、MySQL)上的工作方式完全相同,
【讨论】:
这取决于数据的样子。例如:
declare @field varchar(100)
select @field = 'text text 2000/01/01 text text'
select convert(date,SUBSTRING(@field,CHARINDEX('/',@field,0)-4,10))
如果您知道日期以 yyyy/mm/dd 格式存储,您可以使用上面的代码 - 找到第一个斜线,从斜线的位置剪切字符串 - 长度为 10 的 4。
再具体一点,举个例子,告诉我们你用的是什么sql server,我们可以帮你更多。
【讨论】:
convert(date,SUBSTRING(@field,CHARINDEX('/',@field,0)-2,10)) 但是如果有不同的格式,那么这将是一个非常长和复杂的查询。 .. 一般可以通过这几个函数来实现 - SUBSTRING 删除日期,CHARINDEX 查找可以识别日期的字符,CONVERT 或CAST 将其转换为DATE 或DATETIME .请参阅参考资料 [msdn.microsoft.com/en-us/library/ms187748.aspx]