Scott Hamm wrote:
Can't do that.How do I create a table using:
date_format('2004-10-03 15:06:14','%m/%d/%y %T');
That way I can import Access Data?
You can import Access data via ODBC - that way the driver figures out how to send the data to MySQL.
I assume you are trying to export to a text file and then import from that?
The easiest way of doing this is to export your data in the correct format:
select date_format(MyDateField, 'yyyy-mm-dd') as FormattedDateField
I have attached a VB function that does some fancy reformatting of DateTime fields. You shouldn't need it in this case ( see above ), but it could be handy for later. I use it this way:
- Alter the table and change your date or datetime field to a varchar(50) field.
- Import into the table
- run the attached reformat_dates() function on the table / field, which will format the data the correct way, and change it back to a date or datetime field
Hope it helps :)
-- Daniel Kasak IT Developer NUS Consulting Group Level 5, 77 Pacific Highway North Sydney, NSW, Australia 2060 T: (+61) 2 9922-7676 / F: (+61) 2 9922 7989 email: [EMAIL PROTECTED] website: http://www.nusconsulting.com.au
Function ReformatDates(MyTable, MyField, _ Optional YearDigits As Integer, Optional IncludesTime As Boolean, _ Optional MonthsInText As Boolean) As Integer
If YearDigits = 0 Then YearDigits = 2 Dim myconn As ADODB.connection, mycommand As ADODB.Command, _ sqlstr As String Set myconn = New ADODB.connection With myconn .ConnectionString = xxxxxxxxxxx ' insert your connection string here ... .Open End With Set mycommand = New ADODB.Command With mycommand .ActiveConnection = myconn .CommandType = adCmdText End With ' Add tmp field sqlstr = "alter table " & MyTable _ & " add column " & MyField & "_tmp " _ & IIf(IncludesTime, "datetime", "date") & " NULL after " & MyField mycommand.CommandText = sqlstr mycommand.Execute ' Populate tmp field ' NOTE: Supported date formats: ' d/mm/yy ' dd/mm/yy ' d/mm/yyyy ' dd/mm/yyyy ' dd MMM yy ' dd MMM yyyy If MonthsInText Then sqlstr = "update " & MyTable & " set" & vbNewLine _ & " " & MyField & "_tmp=" & vbNewLine _ & " concat(right(" & MyField & "," & YearDigits & "),'-'," & vbNewLine _ & " case substring(" & MyField & ",length(" & MyField & ")-" _ & IIf(YearDigits = 4, 7, 5) & ",3)" _ & " when 'Jan' then 01" & vbNewLine _ & " when 'Feb' then 02" & vbNewLine _ & " when 'Mar' then 03" & vbNewLine _ & " when 'Apr' then 04" & vbNewLine _ & " when 'May' then 05" & vbNewLine _ & " when 'Jun' then 06" & vbNewLine _ & " when 'Jul' then 07" & vbNewLine _ & " when 'Aug' then 08" & vbNewLine _ & " when 'Sep' then 09" & vbNewLine _ & " when 'Oct' then 10" & vbNewLine _ & " when 'Nov' then 11" & vbNewLine _ & " when 'Dec' then 12" & vbNewLine _ & " end,'-'," sqlstr = sqlstr & " left(" & MyField & ", 2))" Else sqlstr = "update " & MyTable & " set" _ & " " & MyField & "_tmp=" _ & " case when substring(" & MyField & ",2,1)='/'" _ & " then concat(" _ & " substring(" & MyField & ",6," & YearDigits & "),'-'," _ & " substring(" & MyField & ",3,2),'-'," _ & "'0', substring(" & MyField & ",1,1)" If IncludesTime Then sqlstr = sqlstr & ", ' '," _ & " case when right(" & MyField & ", 2)='PM'" & vbNewLine _ & " then cast(substring(" & MyField & ",12,2) as unsigned)+12" _ & " else substring(" & MyField & ",12,2) end, ':'," _ & " substring(" & MyField & ",15,2), ':'," _ & " substring(" & MyField & ",18,2)" End If sqlstr = sqlstr & ") else concat(" _ & " substring(" & MyField & ",7," & YearDigits & "),'-'," _ & " substring(" & MyField & ",4,2),'-'," _ & " substring(" & MyField & ",1,2)" If IncludesTime Then sqlstr = sqlstr & ", ' '," _ & " case when right(" & MyField & ", 2)='PM'" & vbNewLine _ & " then cast(substring(" & MyField & ",12,2) as unsigned)+12" _ & " else substring(" & MyField & ",12,2) end, ':'," _ & " substring(" & MyField & ",15,2), ':'," _ & " substring(" & MyField & ",18,2)" End If sqlstr = sqlstr & ") end" End If mycommand.CommandText = sqlstr mycommand.Execute ' Drop old field sqlstr = "alter table " & MyTable _ & " drop column " & MyField mycommand.CommandText = sqlstr mycommand.Execute ' Rename tmp field sqlstr = "alter table " & MyTable _ & " change " & MyField & "_tmp " & MyField & "" _ & IIf(IncludesTime, " datetime", " date") & " NULL" mycommand.CommandText = sqlstr mycommand.Execute myconn.Close Set mycommand = Nothing Set myconn = Nothing End Function
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]