I want to selected Datetime from a SQL table to a datatable like "2015-09-14 13:39:34".
My SQL table datetime datatype was datetime(27).
But when I selected, it came out like "09/15/2015 3:10 PM".
How can I get the time in seconds, like "dd/MM/yyyy hh/mm/ss"?
you can specify date like
string text = dateTime.ToString("dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
Here you have possible formats for DateTime in SQL Server but this will return date as string.
I'd format date time on application side to display it to user:
string dateFormatted = date.ToString("dd/MM/yyyy HH:mm:ss");
Your looking at this the wrong way, you should keep the date as a date object and only format when displaying to the user using the controls format property
You are requesting a format that is not a normal standard. In sqlserver 2008 you will have to CONVERT a syntax like this:
SELECT CONVERT(char(11), getdate(), 103)
+ replace(convert(char(8), getdate(), 114), ':', '/')
In sqlserver 2012+ you can use FORMAT
SELECT FORMAT( getdate(), 'dd/MM/yyyy hh/mm/ss')
Related
In my C# project I need system date time to another specific date time format.
My system datetime format is like "15/03/2017 9:25 AM" --->that can be changed according to computer wich my program run.
But I need to parse that datetime format to another date time format something like "2017-03-15 9:25 AM"----> save date in SQL datebase accept this format only.
I need Assign this to variable to Datetime Variable not need save in String variable.
I tried this code but not working
string datetimesss = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")
It returns
// value of datetimesss="2017-03-15 09:33:25"
Then i parse again to date time format
DateTime dates = DateTime.Parse(datetimesss);
It returns
// value of dates ="15/03/2017 9:42:43 AM"
Convert back to my computer datetime format .How can I convert any datetime format to DateTime "yyyy-MM-dd hh:mm:ss"
Thank You!
You should avoid strings and just keep your data in DateTime variables. ADO.Net already knows how to translate between .NETs DateTime and SQL Server's datetime - and neither of these has a format (both of them, internally, are just numbers. .NETs DateTime is a count of 100ns intervals since 01/01/0001. SQL Server's datetime is a count of whole and fractional days since 01/01/1900).
Something like:
var updateCommand = new SqlCommand(
"UPDATE [User] SET Last_loign_date =#LastLoginDate"
,conn); //Assume conn is an SqlConnection object
updateCommand.Parameters.Add("#LastLoginDate",SqlDbType.DateTime).Value = DateTime.Now
or, in the alternative, why not use the database server time rather than passing it:
string sqlupdatepassword = "UPDATE [User] SET Last_loign_date =current_timestamp";
If sql server language is set as us-english then your date - > '15/03/2017 9:25 AM' will be considered as text and converting into date will not give correct results. You need create date based on day,month and year from your given date by using string functions. Use the below code to get required output :
declare #date varchar(30) = '15/03/2017 9:25 AM'
select cast(left(parsename(replace(#date,'/','.'),1),4) +
parsename(replace(#date,'/','.'),2) +
parsename(replace(#date,'/','.'),3) as datetime) +
ltrim(stuff(parsename(replace(#date,'/','.'),1),1,4,''))
Finaly I got the point,
I parse DateTime to String
string sqlupdatepassword = "UPDATE [User] SET Last_loign_date ='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss tt") + "'";
In SQl database "Last_loign_date" is datetime format.
this may not correct, but this worked for me.
thanks!
This is my example data using SQL Server with date type
TglUnggah = 30/03/2014
I need date format 'dd/MM/yyyy'
My stored procedure
ALTER proc [dbo].[SP_ViewFile]
AS
BEGIN
SELECT
IdFile, IdAkses, NamaFile, Count,
CONVERT(VARCHAR(10), TglUnggah, 103) AS TglUnggah,
Keterangan, Role, Url
FROM
tbFile
END
When running this stored procedure in ASP.NET, the data is 30/03/2014, but in detailview the format changes to 30/03/2014 0:00:00 and can't been updated
What is the best way to use format dd/MM/yyyy in SQL Server / stored procedure / ASP.NET?
None of the above. Use DateTime whenever possible. Only convert to a formatted string when you need to display output to the user. At that point, you should use whatever format is appropriate for that user's culture.
DateTime has the advantage that it's easy to do manipulations with and you don't have to worry about converting formats everywhere. DateTime is actually a wrapper around the number of ticks since a specific date (you don't need to know that), so there is no inherent string representation of a DateTime object (you do need to know that).
in C# you can use DateTime.TryParseExact
in SQl server you can use Cast and Convert
You can use this procedure:
public static string ConvertDtFormat(string dateTimeString)
{
dateTimeString = dateTimeString.Trim();
while (dateTimeString.Contains(" "))
{
dateTimeString = dateTimeString.Replace(" ", " ");
}
if (dateTimeString == null || dateTimeString.Length == 0)
{
return string.Empty;
}
else
{
DateTime convertedDateTime = new DateTime();
string userDateFormat = HMS.DEFAULT_DATE_FORMAT;
try
{
if (userDateFormat.Trim().Contains("dd/MM/yyyy"))
convertedDateTime = DateTime.ParseExact(dateTimeString, format_dmy, CultureInfo.InvariantCulture,
DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite);
else if (userDateFormat.Trim().Contains("MM/dd/yyyy"))
convertedDateTime = DateTime.ParseExact(dateTimeString, format_mdy, CultureInfo.InvariantCulture,
DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite);
return convertedDateTime.ToString("MMM dd, yyyy hh:mm tt");
}
catch
{
return "Invalid DateTime";
}
}
}
One other thing to consider. When globalising you may need to deal with different time zones so you may want to store dates with date time offset allowing you store UTC times.
This solution is who want to show date in 'dd/mm/yyyy' in the whole application and no timezone related used. Otherwise, you need to convert /cast the data to show.
The best thing for this issue to solve is :- written at the before to date operation done
Set Dateformat DMY
Basic rule to understand about dateformat :-
http://blog.sqlauthority.com/2007/09/28/sql-server-introduction-and-example-for-dateformat-command/
Like
CREATE PROCEDURE SPNAME
(
parameter...
)
as
BEGIN
SET DATEFORMAT DMY
OTHER STATEMENT
END
You can test as
Set Dateformat dmy
Declare #date datetime = '10-06-2012'
select #date
Its simply convert your datetime format as you need
http://msdn.microsoft.com/en-IN/library/ms189491.aspx
http://forums.asp.net/t/1740263.aspx?SET+DATEFORMAT+dmy+SELECT+FROM+Table1+WHERE+Type+ee+order+by+cast+Date+as+datetime+desc
I want to change the default format(MM/dd/yyyy) of the datetime in the database table to (dd/MM/yyyy) when select and write the date with (dd/MM/yyyy) on the datagridview's date column.
Below is my code to convert string input date for instance: 24/4/2013 to datetime and then convert to
4/24/2013 using query and select records from database.
string date = this.ToolStripTextBox2.Text;
DateTime dtDate = DateTime.ParseExact(date, "d/M/yyyy", null);
Query: FillByDate
SELECT Record_ID, Grade, Type,
CONVERT(VARCHAR(10), CAST(Date AS DATETIME), 103) AS Date
FROM RecordsTable
WHERE Date >= CONVERT(datetime, #fromDate, 105)
AND Date <= CONVERT(datetime, #toDate, 105)
ORDER BY Date ASC
But it give this error;
"String was not recognized as a valid DateTime.Couldn't store
<24/04/2013> in Date Column. Expected type is DateTime."
I know that the CONVERT part was wrong as if I remove the convert part out,
the date column can be written but in 4/24/2013 format.
I have no idea how to correct it. Anyone can help?
Thanks
string date = this.ToolStripTextBox2.Text;
DateTime dtDate = DateTime.ParseExact(date, "dd/MM/yyyy", null);
Try this code
I found the solution on this thread.
How to format DateTime columns in DataGridView?
just set the default cell style in the designer.
I am sorry that i ask this kind of question before further searching.
Thanks
I am using datatime datatype to set date in database but it gives the complete data time and hrs and minutes I want to set only date in the format of dd-mm-yyyy
Perhaps use date instead of datetime?
a) in 2008 and later, there is a Date datatype you can use
b) if you can't change the datatype, you can convert a datetime to date to 'truncate' the time. e.g.: convert( date, GETDATE() ) will return '2013-03-27', and when inserted into the datetime column, it will have time 00:00:00.000
c) if you simply don't want to display the time component when converting to a string, use convert with the format of your choosing: http://msdn.microsoft.com/en-us/library/ms187928.aspx
Just use DATE datatype instead ofDATETIME
More on DATE
SQL FIDDLE DEMO
try this
DateTime dt = DateTime.Now;
SqlCommand cmd = new SqlCommand("INSERT into myTable(dateColumn) Values (#pDate)", conn);
cmd.Parameters.AddWithValue("#pDate", dt.Date.ToShortDateString());
My MySQL database has a date field in the format:
yyyy-mm-dd
but in ASP .NET this shows as:
9/14/2009 12:00:00 AM
in both the ItemTemplate and EditItemTemplate.
How do I format the field to display properly?
You can use ToShortDateString() method of DateTime.
You also can use something like this:
DateTime dateTimeObject = Convert.ToDateTime("9/14/2009 12:00:00 AM");
dateTimeObject.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
DateTime dt = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));
qry = "select taxpercentage from tbl_tax where effectivedate contains '" + dt+ "'";
con.returnscalar(qry); what is wrong in this