【发布时间】:2011-01-03 06:18:24
【问题描述】:
我在表中有一些日期字段。这些列包含以下格式的日期:
mmddyy
例如:
31/12/2010 00:00:00:0000
我需要将这些值导入一个设置为 varchar 和 numeric 的表中,并像这样格式化日期:
monthName varchar
Year numeric(4,0)
目前我正在使用
INSERT INTO [School].[dbo].[TeacherAttendenceDet]
([TeacherCode],
[MonthName],
[Year])
(SELECT MAX(employeecode),
Datename(MONTH, dateofjoining) AS MONTH,
Datepart(YEAR, dateofjoining) AS DATE
FROM employeedet
GROUP BY dateofjoining)
但是datename() 以日期格式给出结果.. 我必须以varchar 格式保存它
我该怎么做? 这是employeemast 表:
EmployeeCode numeric(5, 0)
PayScaleCode numeric(7, 0)
DesignationCode varchar(50)
CityCode numeric(5, 0)
EmployeeName varchar(50)
FatherName varchar(50)
BirthDate varchar(50)
DateOfJoining varchar(50)
Address varchar(150)
这是 TeacherAttendenceDet 表
TeacherCode numeric(5, 0) Unchecked
Year numeric(4, 0) Unchecked
MonthName varchar(12) Unchecked
我必须在teacherattendencedet 表中插入来自employeemast 的月份名称和年份
【问题讨论】:
-
如果您发布代码或 XML,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮 ( { } ) 以很好地格式化语法高亮!
-
这给出了写的一月.. 但是插入时给出了错误将 char 数据类型转换为 datetime 数据类型导致超出范围的 datetime 值。我必须分别存储月份名称和年份...我该怎么做?
-
你也可以发布表格 DDL 吗?
-
好的,所以问题确实是:你的
datejoining是一个varchar,但你想在它上面使用日期函数.....从错误信息来看,你的字符串没有t 总是包含一个有效的日期,要么......因为不幸的是,SQL Server 不支持您使用的格式...... -
yaaa...这是主要的错误....谢谢
标签: sql sql-server-2005