use*_*331 2 c# sql vb.net date type-conversion
搜索了一整天后,我无法找到解决方案,面临多个转换错误.主要目标是将" 转换dd/MM/yyyy为yyyy-MM-dd"日期格式以适合SQL Server.
我有一个SQL Server 2012数据库,数据类型date作为我表中的列.
我在我的项目网站上使用jQuery datepicker和jquery-1.4.1-vsdoc.js,输出dd/MM/yyyy是使用
Dim dDate As DateTime = DateTime.Parse(Request.Form(txtStart.UniqueID))
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用获得的日期插入SQL,但数据库日期格式是yyyy-MM-dd.
试过这个,但它不起作用:
SELECT CONVERT(date, CONVERT(DATETIME, '14/10/2011', 0), 120)
Run Code Online (Sandbox Code Playgroud)
试过这个并且它有效,但它的varchar数据类型不是我需要的
SELECT REPLACE(CONVERT(VARCHAR(10), '15/4/2014', 111), '/', '-') AS [YYYY-MM-DD]
Run Code Online (Sandbox Code Playgroud)
我真的需要在我的网站VB/C#代码或SQL语句中的代码,无论哪个来实现这一点,请帮助
我使用jQuery的脚本已经用代码编写了我的sql当前设置的格式,但是在运行时它不适用
<script type="text/javascript">
$(document).ready(function () {
$("#<%=txtStart.ClientID %>").dynDateTime({
showsTime: false,
ifFormat: "%Y-%m-%d ",
daFormat: "%l;%M %p, %e %m, %Y",
align: "BR",
electric: false,
singleClick: false,
displayArea: ".siblings('.dtcDisplayArea')",
button: ".next()"
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
主要目标是将dd/MM/yyyy转换为yyyy-MM-dd"date"格式以适合SQL
别!您应该尽可能避免字符串转换.尽可能多地保持数据的自然表示.
您可能需要解析从dd/MM/yyyy开始DateTime到开始的日期(尽管如果您可以避免这样做,请执行此操作 - 我们不知道您的数据来自何处),但是您应该将其保留为DateTime.使用参数化SQL,将参数的值作为a传递给数据库DateTime.当然,你应该也确保在你的数据库中的字段使用适当的类型下手(不varchar).确保模式与数据匹配对于运行理智的系统至关重要.
解析部分应该相对简单.例如:
DateTime date = DateTime.ParseExact(text, "dd/MM/yyyy",
CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
您可能希望使用用户的文化(取决于数据的来源),您可能想要使用DateTime.TryParseExact(如果这是用户输入的数据而不是机器到机器通信的内容).
| 归档时间: |
|
| 查看次数: |
14835 次 |
| 最近记录: |