Android 插入从日期选择器到SQL Server的日期格式(日期时间)
在我的Android应用程序中,我想将日期选择器中的日期插入SQL Server DB。 SQL Server中的日期类型为datetime。 我可以从DatePicker获得日期、月份和年份,如下所示:Android 插入从日期选择器到SQL Server的日期格式(日期时间),android,sql-server,datetime,android-datepicker,Android,Sql Server,Datetime,Android Datepicker,在我的Android应用程序中,我想将日期选择器中的日期插入SQL Server DB。 SQL Server中的日期类型为datetime。 我可以从DatePicker获得日期、月份和年份,如下所示: int day = datePicker.getDayOfMonth(); int month = datePicker.getMonth(); int year = datePicker.getYear();
int day = datePicker.getDayOfMonth();
int month = datePicker.getMonth();
int year = datePicker.getYear();
但我应该如何将其传递到SQL Server 2012?
使用哪种格式?将日期以英里的形式保存到SQL数据库中。这取决于要存储的数据库。如果您在本地存储在sqlite数据库中,我建议以毫秒为单位存储日期,如果您在后端服务器中存储,则可以将其转换为ISO日期格式。下面给出了两种方法的示例,如果您希望日期采用任何其他格式,也可以通过修改传递给标准\u UI\u date\u format对象构造函数的字符串来实现
Calender startTimeCalender = Calendar.getInstance();
startTimeCalender.set(Calendar.YEAR, year);
startTimeCalender.set(Calendar.MONTH, monthOfYear);
startTimeCalender.set(Calendar.DAY_OF_MONTH, dayOfMonth);
//Date in Millis
lond dateInMillis = startTimeCalender.getTimeInMillis();
SimpleDateFormat STANDARD_UI_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-ddTHH\:mm\:ss.fffffffzzz");
//Date in ISO Format
String formattedDate = STANDARD_UI_DATE_FORMAT.format(startTimeCalender.getTime())
您可以在SQL Server上使用convert()
函数将字符串(如himanshu1496提供的示例)转换为有效的datetime
类型
因此,只要可以将字符串值输入数据库,就可以执行以下操作:
SELECT
'2015-11-24 14:17:19' AS UnconvertedText,
CAST('2015-11-24T14:17:19' AS datetime) AS UsingCast,
CONVERT(datetime, '2015-11-24T14:17:19', 126) AS UsingConvertFrom_ISO8601 ;
GO
(不要忘记上面示例中字符串中的鬼鬼祟祟的T)
此处的文档中对其进行了更详细的描述:
你能用一个例子解释一下吗?ThxIt不是本地数据库,它位于另一台服务器中。我只需要date,所以最好将DB中的字段类型更改为just date,而不是time。你认为使用日历更好吗?如果你在玩日期或时间,或者两者都玩,日历对象是最好的选择。我不确定服务器的日期格式,但如果需要以字符串形式发送,可以使用上面的代码进行格式化。在我的应用程序中,我们使用的是ISO格式,因此我将其转换为ISO并将其作为字符串发送。您使用的SimpleDateFormat对我不起作用,我使用的是:SimpleDateFormat SimpleDateFormat=new SimpleDateFormat(“yyyy-mm-dd hh:mm:ss.mmm”);但是当我编译时,我在catLog:java.lang.NumberFormatException:Invalid int:“18 12:00:00.000”中遇到了这个错误,18是月的第二天,下一天是时间。你能给我看看你用来格式化日期的代码吗,因为我想了解calendar对象是如何实现的吗?calendar finalCalendar=calendar.getInstance();int fDay=datePicker2.getDayOfMonth();int fMonth=datePicker2.getMonth();int fYear=datePicker2.getYear();finalCalendar.set(日历年,整数值)(fYear));finalCalendar.set(日历.月份,整数.值(fMonth));finalCalendar.set(日历.DAY\u/u月,整数.valueOf(fDay));最终日历设置(日历小时,0);最终日历集(日历分钟,0);最终日历集(日历秒,0);