Как да запазите стойността на променлива, която е като дата в базата данни.
Моята струна е следната
Ява
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
try {
SimpleDateFormat parseFormatter = new SimpleDateFormat("yyyy-MM-dd");
//SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss+hh:mm");
Date date = parseFormatter.parse(mydate);
String formattedDate = formatter.format(date);
System.out.println("Date"+formattedDate);
return formattedDate; <<need to save its value to database lets say its value is 2013-03-19
Трябва да го запиша в колона на таблицата, че нейният тип е дата.
База данни
Name Type
Date date
Предполагам, че трябва да конвертирам низ към дата, но как?
ps.setDate(????)
Отговори:
1 за отговор № 1ако mydate е низ в yyyy-MM-dd формат, тогава можете да направите следното
PreparedStatement ps = conn.prepareStatement("insert into t1 (date) values (?)");
ps.setDate(1, java.sql.Date.valueOf(mydate));
ps.executeUpdate();
0 за отговор № 2
MySQL разбира дати. Ако приемем, че използвате a PreparedStatement
можете просто да използвате стандартен JDBC stmt.setDate(n,date)
където n
е индексът на параметъра и date
е променлива на Java от тип дата.
Няма нужда да правите низови преобразувания.
0 за отговор № 3
Използвай STR_TO_DATE функция в MySql
РЕДАКТИРАНЕ
например
INSERT INTO table (dateCol1, col2 ..)
VALUES (STR_TO_DATE("May 1, 2013","%M %d,%Y"), col2value, ...)
0 за отговор № 4
Предполагам, че трябва да конвертирам низ към дата, но как?
Ако искате да конвертирате String
в Date
, да предположим String
е 2013-03-19
String yourString = "2013-03-19";
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(yourString);
Ето твоите String
се преобразува в Date
обект, но ако трябва да определите тази конкретна дата в друг обект на дата, това не е възможно по този начин yourDateObj.setDate(date)
защото няма такъв директен метод в клас Дата, който да приема датата като аргумент.
за да зададете конкретна дата, можете да използвате Календар като
Calendar yourDate = new GregorianCalendar();
yourDate.setTime(date);
Други мъдри можете да направите и по този начин Date(int year, int month, int date)
но вече е оттеглена.
Или Ако искате да вмъкнете String
в Date
колона от mysql
тогава # Function_str актуална, Съгласен съм с Ед Хил отговор