my query(select invoice_date from pr_tax_intra where invoice_date between '03-05-2018' and '05-05-2018')
тип данных invoice_date varchar-> (invoice_date varchar (55))
выходные изображения:
введите описание изображения здесь
введите изображение здесь. Это изображение отображает только данные за 5 месяцев, но показывается в 4 и 5 месяцах данных...
Я использую базу данных mysql
Я сохранил дату как тип данных varchar (255), а формат даты - dd/MM/yyyy, теперь мне нужно преобразовать его в тип данных даты, может ли помочь мне в запросе?
У меня есть 780 записей, и каждый recod содержит дату в формате dd/MM/YYYY, но из-за типа данных varchar я не могу выполнить вычисление по дате, поэтому мне нужно конвертировать в дату без потери данных.
Помогите мне, пожалуйста
Вы можете использовать myqsl STR_TO_DATE()
SELECT STR_TO_DATE("10 August 2017", "%d %M %Y")
Вы можете сделать это так, получить всю свою запись, а затем применить цикл while
$ListContent = mysqli_query($conn, "SELECT 'date_filed' FROM table_name") or die(mysqli_error($conn)." Error in query"); // $conn is connection object
while($arr = mysqli_fetch_array($ListContent)){
$currentDate = $arr['date_filed'];
$currentRowID = $arr['id']; // Unique id column name
$newDate = date("Y-m-d", strtotime($currentDate));
$sqlUpdate = "Update table_name SET 'date_filed' ='".$newDate."' WHERE id=".$currentRowID;
mysqli_query($conn, $sqlUpdate) or die(mysqli_error($conn)." Error in update query");
}
Это сделает вашу запись в формате "yyyy-mm-dd", а затем изменит ваше поле на тип даты
//Для тестирования
SELECT DATE_FORMAT(STR_TO_DATE('21/05/2018', '%Y/%m/%d')
,'%d/%m/%Y')
В вашем случае используйте ниже запрос
SELECT DATE_FORMAT(STR_TO_DATE(YourVarcharDateColumn, '%Y/%m/%d')
,'%d/%m/%Y') from YourTable
SQL Server (MSSQL)
SELECT FORMAT(YourDateColumn,'dd-MM-yyyy') from yourTable