SQL-仅从DateTime字段中选择“年”
我的数据库是SQL Server 2012。我尝试只从datetime字段中选择年份。日期格式为dd/mm/yyyy 00:00:00。 以下是我的疑问:SQL-仅从DateTime字段中选择“年”,sql,select,sql-server-2012,Sql,Select,Sql Server 2012,我的数据库是SQL Server 2012。我尝试只从datetime字段中选择年份。日期格式为dd/mm/yyyy 00:00:00。 以下是我的疑问: SELECT ,YEAR(DateTime) FROM MayTable 但当我运行查询时,会出现以下错误: 从字符转换日期和/或时间时转换失败 绳子 您首先应该将此信息存储在相应数据类型的列中 但如果我正确理解你的评论,这不是你自己设计的表格。你可以用 SELECT CAST(SUBSTRING(DateTime, 7,
SELECT
,YEAR(DateTime)
FROM MayTable
但当我运行查询时,会出现以下错误:
从字符转换日期和/或时间时转换失败
绳子
您首先应该将此信息存储在相应数据类型的列中 但如果我正确理解你的评论,这不是你自己设计的表格。你可以用
SELECT CAST(SUBSTRING(DateTime, 7, 4) AS INT)
FROM MyTable;
或
从DateTime数据类型选择年份的另一个过程是
select datepart(yyyy,ColumnName) from table
有关更多详细信息,请访问
日期时间字段显然不是日期时间字段,而是字符字段。这对事情很重要。首先,您不应该将日期时间存储为文本,而是存储在特定的日期和时间类型中。第二,只要它是一个文本字段,您就必须正确地将其转换为日期,或者只使用SUBSTR从中获取年份。我在数据库中不存储任何内容,该数据库来自SCVMM…@GolezTrol,您能举个例子吗?在这种情况下,您将使用MONTHDateTime。或者DATENAMEMONTH,DateTimeOk,我明白了,我只需要年复一年地改变。非常感谢您的帮助只是为了确保“设置”不会更改my DB中的任何内容?不,它只会影响当前会话中字符串日期的解释方式。
select datepart(yyyy,ColumnName) from table