如何在具有不同格式的表中插入日期?

时间:2013-05-19 20:21:37

标签: mysql sql database asp-classic

我的问题是我在HTML文本框中的日期值为05/09/2013,无法更改。

现在sql只接受日期格式为yyyy/mm/dd。因此,当将此文本框值插入sql数据库时,它不支持此格式并引发异常。

因此我的问题是如何将不同格式的文本框值插入到sql数据库中?

例如我的代码看起来像

insert into table (date) value('"& date& "')

输入框有一个日历类型的文本框,并以05/09/2013格式

发送日期

2 个答案:

答案 0 :(得分:1)

<强>更新

对于MySQL使用STR_TO_DATE()

INSERT INTO Table1 (date)
SELECT STR_TO_DATE('05/09/2013', '%d/%m/%Y')

<强> SQLFiddle

根据您的评论,查询应该看起来像

sql = "INSERT INTO shiftpatterns (siteNumber,shiftdate) SELECT '"&siteNumber&"', 'STR_TO_DATE('"&shiftdate&"','%d/%m/%Y')"

原始回答

对于SQL Server,请使用CONVERT

INSERT INTO Table1 ([date])
SELECT CONVERT(datetime, '05/09/2013', 103)

<强> SQLFiddle

在这两种情况下

SELECT * FROM table1

会给你:

|                             DATE |
------------------------------------
| September, 05 2013 00:00:00+0000 |

答案 1 :(得分:0)

根据您的标签,您使用的是经典ASP,因此我们可以假设您使用form将数据提交到您正在撰写的ASP页面。

如果您无法编辑客户端页面,最容错的方法是假脱机日期对象,解析提供的值,然后从那里提取数据。或者,您可以将其视为字符串,测试预期的格式,然后将字符串处理为更清晰的形式。

function fixDate(inStr)
  if inStr like '99/99/9999' then
    fixDate = LEFT(inStr,4) + "/" + RIGHT(inStr,4)
  endif
end function