我的问题是我在HTML文本框中的日期值为05/09/2013
,无法更改。
现在sql只接受日期格式为yyyy/mm/dd
。因此,当将此文本框值插入sql数据库时,它不支持此格式并引发异常。
因此我的问题是如何将不同格式的文本框值插入到sql数据库中?
例如我的代码看起来像
insert into table (date) value('"& date& "')
输入框有一个日历类型的文本框,并以05/09/2013
格式
答案 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