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")