1
导入excel访问2007时,某个日期字段已成为文本字段。所以我想在访问中运行查询来将这些列数据类型更改为datetime。如何在sql中传递日期格式(“dd-mmm-yyyy”)?更改列数据类型和格式
ALTER TABLE Tbl1
ALTER COLUMN [ABC] datetime
感谢
乔
导入excel访问2007时,某个日期字段已成为文本字段。所以我想在访问中运行查询来将这些列数据类型更改为datetime。如何在sql中传递日期格式(“dd-mmm-yyyy”)?更改列数据类型和格式
ALTER TABLE Tbl1
ALTER COLUMN [ABC] datetime
感谢
乔
如果您从Excel导入的列(字段),它已经结束了在文本格式,你应该很警惕简单地切换为日期时间格式。如果Access没有将其视为混合数据类型,则Access应该已经将该字段解释为DateTime。您应该创建一个新的DateTime列,并以明确的格式更新年份和月份。
让我们说你的列是MM/DD/YYYY,其中一个方案是:
UPDATE Table SET NewDateTime = Right(DT,4) & "/" & Left(DT,2) & "/" & Mid(DT,4,2)
WHERE DT Like "##/##/####"
您不能设置与DDL Format属性,这是没有的MS Access以外的相关性。一般来说,我建议您不要在表格中使用Format属性,最好在表格和报告中进行控制。如果查询不能按照预期的方式进行,设置格式将不可避免地在某个阶段混淆某人。
如果您确实需要设置格式,则必须使用VBA,DAO和TableDef。
Dim db As Database
Dim tdf As TableDef
Dim fld As DAO.Field
Dim prp As Property
Dim prpName As String
Dim prpValue As String
Dim prpType As Long
Set db = CurrentDb
Set tdf = db.TableDefs("Table1")
Set fld = tdf.Fields("ADate")
prpName = "Format"
prpValue = "yyyy/mm/dd"
prpType = dbText
On Error Resume Next
fld.Properties(prpName) = prpValue
If Err.Number = 3270 Then
Set prp = fld.CreateProperty(prpName, prpType, prpValue)
Err.Clear
fld.Properties.Append prp
End If
Debug.Print fld.Properties("Format")